2017-11-21 9 views
1

왜 NLTK의 word_tokenizer가 문자열 "this 's"를보고이를 "this" "" ""s "로 분할하는지 이해하는 데 문제가 있습니다. 나는 "테스트의"와 함께 테스트했습니다 그리고이 잘 작동합니다. "결과"로 테스트했을 때 아포스트로피가 다시 분리되었습니다. 이것은 아포스트로피로 일어날 특별한 일입니까?Word tokenizer가 "this 's"를 선택하지 않음

+1

나는이 생각 (ㅎ!) 관련 : https://ell.stackexchange.com/q/145503 –

+0

하하 감사합니다! –

+0

\을 앞에 추가하려고 시도한 적이 있습니까? IE는 '이 \'s의''? – Simon

답변

0

일반적으로 NLTK 및 토큰 화 도구의 일반적인 동작은 this's ->this + 's입니다. 's clitique이고 두 개의 별개 구문 단위입니다. 결과의 경우를 들어

>>> from nltk import word_tokenize 
>>> word_tokenize("this's") 
['this', "'s"] 

는 동일합니다 :

>>> word_tokenize("results'") 
['results', "'"] 

왜 호스트에서 's' 별도의 실체인가?

this's의 경우에, 's은 코 플레어를 나타내는 is의 축약 된 형태이다. 어떤 경우에는 모호하며 소유욕을 나타낼 수도 있습니다.

results'의 두 번째 경우에 대해 '은 소유하고 있음을 나타냅니다. 우리가 토큰 화 된 형태의 태그를 POS 경우

그래서 우리가 얻을 :

>>> from nltk import word_tokenize, pos_tag 
>>> pos_tag(word_tokenize("this's")) 
[('this', 'DT'), ("'s", 'POS')] 
:

>>> from nltk import word_tokenize, pos_tag 
>>> pos_tag(word_tokenize("results'")) 
[('results', 'NNS'), ("'", 'POS')] 

this's의 경우를 들어, POS 술래는 사람들이 거의 작성된 텍스트 this's를 사용하지 않기 때문에 그것은 소유욕을이라고 생각

그러나 He's ->He + 's을 보면 's이 코 플레어를 나타냅니다.

>>> pos_tag(word_tokenize("He's good.")) 
[('He', 'PRP'), ("'s", 'VBZ'), ('good', 'JJ'), ('.', '.')] 

관련 질문 : https://stackoverflow.com/a/47384013/610569