입력 단어가 주어지면 명사인지 여부를 결정해야합니다 (예 : cook
이 모호하거나 일치하지 않을 경우 단어를 식별해야 함). 명사로).단어가 명사인지 여부 확인
사실 저는 Stanford Parser의 POS tagger를 사용합니다. (저는 입력으로 한 단어 만주고 결과로부터 POS 태그만을 추출합니다). 결과는 꽤 좋지만 시간이 오래 걸립니다.
파이썬에서이 작업을 실제로 수행하는 방법이 있습니까?
입력 단어가 주어지면 명사인지 여부를 결정해야합니다 (예 : cook
이 모호하거나 일치하지 않을 경우 단어를 식별해야 함). 명사로).단어가 명사인지 여부 확인
사실 저는 Stanford Parser의 POS tagger를 사용합니다. (저는 입력으로 한 단어 만주고 결과로부터 POS 태그만을 추출합니다). 결과는 꽤 좋지만 시간이 오래 걸립니다.
파이썬에서이 작업을 실제로 수행하는 방법이 있습니까?
한 단어를 명사로 사용할 수 있는지 여부를 간단하게 확인하려면 가장 빠른 방법은 모든 명사 집합을 작성한 다음 해당 집합의 구성원 단어를 확인하는 것입니다. 당신이 (예를 들어, NLTK를 통해 액세스 할 수 있습니다)에 WordNet 코퍼스 사용할 수있는 모든 명사의 목록
:>>> from nltk.corpus import wordnet as wn
>>> nouns = {x.name().split('.', 1)[0] for x in wn.all_synsets('n')}
>>> "cook" in nouns
True
>>> "and" in nouns
False
그것은 가능성, 감사합니다 :) nltk는 67176 명사를 제공합니다, 우리는 그들을 많이 잃지 않습니까 (다른 사전 사용)? (나는 당신이 당신의 코드에서'name' 다음에'()'을 잊었다 고 생각합니다) – permanganate
당신이 맞을 수도 있습니다 : 얼마나 많은 영어 명사들이 있는지 모르겠습니다! WordNet의 기능을 확장하기 위해 다른 곳에서 더 큰 목록을 찾을 수 있습니다. ('.name'은 괄호없이 파이썬과 NLTK의 제 버전에서 단어에 접근하는 올바른 방법 인 것 같습니다.) –
'name'은 함수이고, 코드는'nouns = {x. split ('.', 1) [0] [...]}' – Ponkadoodle
내가 파이썬 래퍼에 대해 말할 수 있지만, 당신은 스탠포드를 사용하는 경우 POS tagger
파서가 아닌 훨씬 빠릅니다. 여기에는 Stanford CoreNLP
에 대한 래퍼가 있으며 여기에는 태그러가 포함됩니다. https://pypi.python.org/pypi/corenlp-python; 또는 nltk
에는 스탠포드 (stanford) 태그 지정 모듈도 있습니다 (http://www.nltk.org/_modules/nltk/tag/stanford.html).
장난감 단어에 한 단어를 포함 시키면 더 좋은 결과를 얻을 수도 있습니다. "X는 일"과 같은 것입니다. 문장에 따라, 이것은 당신을 명상의 단어로 추측하거나 멀리 떨어 뜨릴 수 있습니다.
한 단어를 검사하는 경우 단어 네트워크를 두 번째 사용합니다. 자유롭게 사용할 수있는 TreeTagger도 사용했습니다. http://www.cis.uni-muenchen.de/~schmid/tools/TreeTagger/ 바이너리는 정말 빠르게 실행되며 여러 언어를 지원합니다. 당신은 순수 파이썬 솔루션을 필요로하는 경우, 브릴 술래의 NLTK 구현 확인 : http://www.nltk.org/_modules/nltk/tag/brill.html이
스탠포드 파서가 입력 (종속 구문 분석, 선거 구민 분석 ...) 다른 많은 것들을 수행, 그것은 시간의 낭비 이리. 또한, POS 태그를 너무 강하게하고 싶지 않습니다 (일반적으로 POS 태그는 한 문장이 아닌 전체 문장에서 수행됩니다). – permanganate