wwwjdicの例からEDICT辞書ファイルからデータを抽出しています:
相同器官 [そうどうきかん] /(n) homologous organ/
相同染色体 [そうどうせんしょくたい] /(n) homologous chromosome/
相同組換え [そうどうくみかえ] /(n) homologous recombination/
相同的組み換え [そうどうてきくみかえ] /(n) homologous recombination/
相同的組換 [そうどうてきくみかえ] /(n) homologous recombination/
相同的組換え [そうどうてきくみかえ] /(n) homologous recombination/
相入れない [あいいれない] /(iK) (exp,adj-i) in conflict/incompatible/out of harmony/running counter/mutually exclusive/clashing with/
相年 [あいどし] /(n,adj-no) the same age/
相伴 [しょうばん] /(n,vs) partaking/participating/taking part in/sharing (something with someone)/
相伴う [あいともなう] /(v5u) to accompany/
相判 [あいはん] /(n,vs) (1) official seal/verification seal/affixing a seal to an official document/(2) making a joint signature or seal/
相判 [あいばん] /(n) (1) medium-sized paper (approx. 15x21 cm, used for notebooks)/(2) medium-sized photo print (approx. 10x13 cm)/
相判 [あいばん] /(n,vs) (1) official
行は、各エントリがどの品詞であるかを指定します。つまり/(n)
、名詞と/(adj)
形容詞です。この配列で品詞のラベルが付けられたすべてのエントリを取得することに興味があります。
["n", "n-adv", "n-pref", "n-suf", "n-t", "num", "pn", "adj-no", "adj-f", "adv-n", "vs"]
私はそのように行を分割しようとしています
file = File.open("EDICT.txt")
file.each_line do |line|
if line[#Regex]
.
.
私は正規表現を使用していますが、私が得た最も遠いものは
/\/[(](n|n-adv|n-pref|n-suf|n-t|num|pn|adj-no|adj-f|adv-n|vs|n,vs)[)]/
これは堅牢ではありません。さらに、時々、次のようなタグがあります。
/(adj-no,n-adv,n-t)
正規表現と一致しません。同時に、次の用語と一致するべきではありません。
["adj-i", "adj-na", "adj-pn", "adj-t", "adj", "adv", "adv-to", "aux", "aux-v", "aux-adj", "conj",
"ctr", "exp", "int", "iv", "pref", "prt", "suf", "v1", "v2a-s", "v4h", "v4r", "v5", "v5argu",
"v5b", "v5g", "v5k", "v5k-s", "v5m", "v5n", "v5r", "v5r-i", "v5s", "v5t", "v5u", "v5u-s", "v5uru",
"v5z", "vz", "vi", "vk", "vn", "vs-c", "vs-i", "vs-s", "vt"]
/()
行に必要なタグが含まれているかどうかを確認するためのより良い、より堅牢な方法は何ですか?