2013-04-22 68 views
0

所以我無法從Wordnet :: SenseRelate調用函數,因爲文本中的某些「單詞」不是有效的查詢。我嘗試過使用try和catch,以便程序不會退出並跳過它,但沒有運氣。我想檢查一個詞是有效利用WORDNET :: QueryData但是當我使用像一個無效的話,將退出:Wordnet如何知道字符串是否有效查詢字符串

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

我得到:

(querySense) Bad query string: #44 
+1

我猜這是衝突的,因爲#和查詢可以說像狗#n#1的方式,我最終刪除了#個事件... – bb2 2013-04-22 05:24:44

回答

0

所使用正則表達式可以在聲明中找到:

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

如有疑問是否令牌將被接受,測試它反對這個正則表達式。

評論具體問題時,不能有任何前導或尾隨#字符(遇到問題)。如果存在#個字符,則查詢字符串中可以有1個或2個但不超過2個。 #字符如果作爲分隔符存在以確定什麼是詞,什麼是pos和什麼是有意義的。

相關問題