2013-04-22 5 views
0

그래서 텍스트의 "단어"중 일부가 유효한 쿼리가 아니기 때문에 Wordnet :: SenseRelate에서 함수를 호출하는 데 문제가 있습니다. 나는 프로그램을 종료하지 않고 건너 뛸 수 있도록 시도하고 잡으려고 노력했다. 나는 단어 Wordnet는 :: QueryData를 사용하여 유효 여부를 확인하고 싶었지만 내가 좋아하는 잘못된 단어를 사용 할 때 종료됩니다 : 내가 얻을Wordnet에서 문자열이 유효한 쿼리 문자열인지 확인하는 방법

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

:

(querySense) Bad query string: #44 
+1

#와 # 개의 개 # n # 1처럼 질의가 가능한 방식으로 인해 충돌이 일어난 것 같아요. – bb2

답변

0

사용되는 정규식 수

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

의심스러운 경우 토큰이 수락되는지 여부를이 정규식에 대해 테스트하십시오.

특정 질문에 대한 설명에 앞뒤에 # 문자 (경험 한 문제)가 있어서는 안됩니다. # 문자가 있으면 쿼리 문자열에 1 또는 2가 있지만 2는 초과 할 수 없습니다. 단어가 무엇인지, 무엇이 pos인지, 어떤 의미인지를 결정하기위한 구분자로 # 문자가있는 경우.

관련 문제