2017-12-04 8 views
2

오후는 pm (시간)을 의미 할 수 있지만 총리를 의미 할 수도 있습니다.Spacy에서 더 좋아하는 보조 정리를 얻는 방법

후자를 캡처하고 싶습니다. 나는 PM의 보조 정리가 총리에게 돌아 가기를 바란다. 어떻게 spacy를 사용하여 이것을 할 수 있습니까?

예 복귀 예기치 표제어 : 문서 https://spacy.io/api/annotation으로 당

>>> import spacy 
>>> #nlp = spacy.load('en') 
>>> nlp = spacy.load('en_core_web_lg') 
>>> doc = nlp(u'PM means prime minister') 
>>> for word in doc: 
...  print(word.text, word.lemma_) 
... 
PM pm 
means mean 
prime prime 
minister minister 

는 적응 표제어는 워드 넷에 사용;

보조 정리는 단어의 반영되지 않은 형태입니다. 내가 Wordnet에서 "시"를 입력했을 때 영어 원형 화 데이터는 워드 넷 ..

에서 가져온 것입니다, 그것은 보조 정리의 하나로서 "총리는"보여줍니다.

무엇이 여기에 있습니까? 그것은 동일한하는 약어 유지

>>>[str(lemma.name()) for lemma in wn.synset('prime_minister.n.01').lemmas()] ['Prime_Minister', 'PM', 'premier']

는 어쩌면 당신이 word.lemma를 확인하려면() :

+0

기존 답변을 검토하고 질문에 답변하거나 필요한 내용을 더 명확하게 설명해 주시면 승인 해 주실 수 있습니까?고맙습니다. – pmbaumgartner

답변

1

일반적인 NLP 작업을 명확히하여 질문에 대답하는 데 도움이 될 것이라고 생각합니다.

축약 문자은 단어의 다른 굴절을 가진 표준 단어를 찾는 과정입니다. 예를 들어, 실행, 실행, 실행 및 실행은 동일한 어휘 : 실행의 형태입니다. 을 lemmatize한다면, 이고, 입니다. 출력은 입니다. 귀하의 예문에서, 어떻게 그것이 lemmatizes 의미의미 의미합니다.

그렇기 때문에 수행하려는 작업이 음표 화가 아닌 것처럼 들립니다. 어리석은 반례로이 아이디어를 확고히하는 데 도움이 될 수 있습니다. 가상의 보조 정리 "pm"의 다양한 굴절은 무엇입니까? pming, pmed, pms? 이들 중 어느 것도 실제 단어가 아닙니다.

당신의 작업이 명명 된 엔티티 인식 (NER)에 가까울 수있는 것처럼 들리지만 이는 spaCy에서도 할 수 있습니다. 다음과 같이 분석 문서에서 감지 된 개체를 반복하려면는 .ents 속성을 사용할 수 있습니다 :

>>> for ent in doc.ents: 
...  print(ent, ent.label_) 

당신이, 적응 준 문장으로 어떤 실체를 감지하지 않습니다 (V 2.0.5입니다.) . "PM"을 "P.M."으로 바꾸면 그것은 엔티티로서, 그러나 GPE로서 그것을 탐지 할 것입니다.

가장 좋은 방법은 작업에 따라 다르지만 "PM"엔티티의 원하는 분류를 원한다면 setting entity annotations을 참조하십시오. 문서의 큰 자료에서 "PM"에 대한 모든 언급을 꺼내려는 경우 use the matcher in a pipeline.

0

나는 nltk.wordnet에 대한 총리의 보조 정리를 (이뿐만 아니라 그것을 사용) 내가 얻을 실행하면 문맥에 따라 당신에게 다른 ID를 줄 것입니까?