テキスト分析 特定の品詞のみを対象
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
テキストを分析する際、トークン化後、ストップワードを削除したり、句読点を削除したりすると思いますが、その際、特定の品詞のみ(名詞、形容詞、動詞など)を対象することは可能でしょうか。もしくは、Nグラムを行う際に、特定の品詞のみを対象にすることは可能でしょうか。
0 Kommentare
Akzeptierte Antwort
Misa Taguchi
am 26 Feb. 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 Kommentare
Misa Taguchi
am 1 Mär. 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) % 追加
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Text Data Preparation finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!