日本語の認識のご相談
6 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hiraku Tokuma
il 2 Ott 2022
Modificato: Hiraku Tokuma
il 3 Ott 2022
matlabで日本語を入力したものに対して
文節ごとに文字の順番を最初と最後だけ固定してランダムに動かすことは可能でしょうか。
アバウトな質問で恐縮ですが、どうぞよろしくお願いいたします。
0 Commenti
Risposta accettata
Atsushi Ueno
il 3 Ott 2022
Modificato: Atsushi Ueno
il 3 Ott 2022
上記ドキュメントを参考に2つのラッパー関数をダウンロードしてカレントフォルダに置き、下記コードを実行すると最後の結果が得られました。素晴らしい。
str = "matlabで日本語を入力したものに対してタイポグリセミア現象を起こすことは可能でしょうか。" + ...
"アバウトな質問で恐縮ですが、どうぞよろしくお願いいたします。";
documents = tokenizedDocumentJP(str); % 形態素解析
tkns = tokenDetailsJP(documents); % 形態素解析結果の抽出
idx = tkns.rubi ~= "*"; % "*"以外のrubiを使う。それ以外の句読点等はTokenを使う。
tkns.Token(idx) = tkns.rubi(idx);
for i = 1:size(tkns,1)-1
if tkns.PartOfSpeech(i) == "auxiliary-verb" % 助動詞は
tkns.Token(i+1) = tkns.Token(i) + tkns.Token(i+1); % 次の品詞にくっつける
end
end
tkns(tkns.PartOfSpeech == "auxiliary-verb",:) = []; % くっつけた助動詞を消す
for i = 1:size(tkns,1) % 各単語において最初と最後以外の文字をひっくり返していく
str = char(tkns.Token(i));
if length(str) <= 3
continue; % 単語が3文字以下なら何もしない
end
prt = str(2:end-1); % 単語の2文字目~最後から1文字前まで取り出す
tkns.Token(i) = string([str(1) prt(randperm(strlength(prt))) str(end)]); % ひっくり返してくっつける
end
strjoin(tkns.Token') % 表示してみる
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Language Support in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!