因此我无法从Wordnet :: SenseRelate调用函数,因为文本中的某些“单词”不是有效查询。我尝试过捕捉周围环境,以便程序不会退出并跳过它但没有运气。我想通过使用Wordnet :: QueryData来检查一个单词是否有效,但是当我使用一个无效的单词时它会退出:
$wn->querySense("#44");
我明白了:
(querySense) Bad query string: #44
答案 0 :(得分:0)
使用的正则表达式可以在声明中找到:
my ($word, $pos, $sense) = $string =~ /^([^\#]+)(?:\#([^\#]+)(?:\#(\d+))?)?$/;
如果对是否接受令牌存在疑问,请针对此正则表达式进行测试。
评论具体问题时,不能有任何前导或尾随#字符(遇到的问题)。如果存在#个字符,则查询字符串中可以有1个或2个但不超过2个。 #字符如果作为分隔符存在,以确定什么是单词,什么是pos和什么是意义。