0

テキスト内の「単語」の一部が有効なクエリではないため、Wordnet::SenseRelate から関数を呼び出すのに問題があります。プログラムが終了してスキップしないように、try と catch で囲んでみましたが、うまくいきませんでした。Wordnet::QueryData を使用して単語が有効かどうかを確認したかったのですが、次のような無効な単語を使用すると終了します。

$wn->querySense("#44");

私は得る:

(querySense) Bad query string: #44 
4

1 に答える 1

0

使用される正規表現は、次のステートメントで確認できます。

my ($word, $pos, $sense) = $string =~ /^([^\#]+)(?:\#([^\#]+)(?:\#(\d+))?)?$/;

トークンが受け入れられるかどうか疑問がある場合は、この正規表現に対してテストしてください。

特定の質問についてコメントすると、先頭または末尾に # 文字を含めることはできません (問題が発生しました)。# 文字が存在する場合、クエリ文字列には 1 つまたは 2 つ存在できますが、2 つを超えることはできません。# 文字は、単語、位置、意味を決定する区切り文字として存在する場合。

于 2014-04-04T14:18:18.210 に答える