テキスト分析 特定の品詞のみを対象
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
TS
el 25 de Feb. de 2021
Comentada: TS
el 1 de Mzo. de 2021
テキストを分析する際、トークン化後、ストップワードを削除したり、句読点を削除したりすると思いますが、その際、特定の品詞のみ(名詞、形容詞、動詞など)を対象することは可能でしょうか。もしくは、Nグラムを行う際に、特定の品詞のみを対象にすることは可能でしょうか。
0 comentarios
Respuesta aceptada
Misa Taguchi
el 26 de Feb. de 2021
こんにちは。可能だと思われます。以下に簡単なデモを作成いたしましたが、こちらの処理ではいかがでしょうか。
%% 解析用データの読込み(「吾輩は猫である」を読み込んでいます)
url = "https://www.aozora.gr.jp/cards/000148/files/789_14547.html";
options = weboptions('CharacterEncoding','Shift_JIS');
code = webread(url,options);
textData = extractHTMLText(code);
textData = string(split(textData,newline));
idx = textData == "";
textData(idx) = [];
%% トークン化
documents = tokenizedDocument(textData);
%% 品詞情報の取得
tdetails = tokenDetails(documents);
head(tdetails)
%% 名詞の抽出
idx = tdetails.PartOfSpeech == "noun";
tokens = tdetails(idx,:);
for ii = 1:max(tokens.DocumentNumber)
try
str(ii,:) = join(tokens.Token(tokens.DocumentNumber == ii));
end
end
%% 名詞のストップワード削除
documents = tokenizedDocument(str);
documents = removeStopWords(documents);
%% Nグラムの作成(この例ではBigram)
bag = bagOfNgrams(documents,'NgramLengths',2);
3 comentarios
Misa Taguchi
el 1 de Mzo. de 2021
無事に実装できたとのこと安心いたしました。ご記載の処理では、
idx = textData == "";
によりtextDataの中の""の部分(=テキストが空の行)のインデックス(idx)を探し、
textData(idx) = [];
により、該当する行を削除しています。
以下のコードにより、該当の処理前後でtextDataがどう変化するか、ご覧いただけるかと思います。
%% 解析用データの読込み(「吾輩は猫である」を読み込んでいます)
url = "https://www.aozora.gr.jp/cards/000148/files/789_14547.html";
options = weboptions('CharacterEncoding','Shift_JIS');
code = webread(url,options);
textData = extractHTMLText(code);
textData = string(split(textData,newline));
textData(1:10) % 追加
idx = textData == "";
textData(idx) = [];
textData(1:10) % 追加
Más respuestas (0)
Ver también
Categorías
Más información sobre Text Data Preparation en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!