Wordnet如何知道字符串是否是有效的查询字符串

时间:2013-04-22 00:41:20

标签: regex perl wordnet

因此我无法从Wordnet :: SenseRelate调用函数,因为文本中的某些“单词”不是有效查询。我尝试过捕捉周围环境,以便程序不会退出并跳过它但没有运气。我想通过使用Wordnet :: QueryData来检查一个单词是否有效,但是当我使用一个无效的单词时它会退出:

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

我明白了:

(querySense) Bad query string: #44 

1 个答案:

答案 0 :(得分:0)

使用的正则表达式可以在声明中找到:

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

如果对是否接受令牌存在疑问,请针对此正则表达式进行测试。

评论具体问题时,不能有任何前导或尾随#字符(遇到的问题)。如果存在#个字符,则查询字符串中可以有1个或2个但不超过2个。 #字符如果作为分隔符存在,以确定什么是单词,什么是pos和什么是意义。