5
스탠포드의 프랑스어 POS 태그 태그에서 반환되는 음성 태그를 어떻게 단순화 할 수 있습니까? 이 태그 세트를 단순화하기 위해 map_tag을(), NLTK로 영어 문장을 읽을 연설의 각 단어의 일부를 발견하고 사용하기 매우 쉬운 :NLTK를 사용하여 프랑스어 POS 태그 세트 단순화
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
from nltk.tag.stanford import POSTagger
from nltk.tokenize import word_tokenize
from nltk.tag import map_tag
#set java_home path from within script. Run os.getenv("JAVA_HOME") to test java_home
os.environ["JAVA_HOME"] = "C:\\Program Files\\Java\\jdk1.7.0_25\\bin"
english = u"the whole earth swarms with living beings, every plant, every grain and leaf, supports the life of thousands."
path_to_english_model = "C:\\Text\\Professional\\Digital Humanities\\Packages and Tools\\Stanford Packages\\stanford-postagger-full-2014-08-27\\stanford-postagger-full-2014-08-27\\models\\english-bidirectional-distsim.tagger"
path_to_jar = "C:\\Text\\Professional\\Digital Humanities\\Packages and Tools\\Stanford Packages\\stanford-postagger-full-2014-08-27\\stanford-postagger-full-2014-08-27\\stanford-postagger.jar"
#define english and french taggers
english_tagger = POSTagger(path_to_english_model, path_to_jar, encoding="utf-8")
#each tuple in list_of_english_pos_tuples = (word, pos)
list_of_english_pos_tuples = english_tagger.tag(word_tokenize(english))
simplified_pos_tags_english = [(word, map_tag('en-ptb', 'universal', tag)) for word, tag in list_of_english_pos_tuples]
print simplified_pos_tags_english
#output = [(u'the', u'DET'), (u'whole', u'ADJ'), (u'earth', u'NOUN'), (u'swarms', u'NOUN'), (u'with', u'ADP'), (u'living', u'NOUN'), (u'beings', u'NOUN'), (u',', u'.'), (u'every', u'DET'), (u'plant', u'NOUN'), (u',', u'.'), (u'every', u'DET'), (u'grain', u'NOUN'), (u'and', u'CONJ'), (u'leaf', u'NOUN'), (u',', u'.'), (u'supports', u'VERB'), (u'the', u'DET'), (u'life', u'NOUN'), (u'of', u'ADP'), (u'thousands', u'NOUN'), (u'.', u'.')]
을하지만 반환 프랑스 태그를 매핑하는 방법을 잘 모르겠어요 보편적 인 태그 세트에 다음 코드로 : 스탠포드 POS 술래에서 프랑스 모델에서 사용하는 기본 태그 세트를 단순화하는 방법을
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
from nltk.tag.stanford import POSTagger
from nltk.tokenize import word_tokenize
from nltk.tag import map_tag
#set java_home path from within script. Run os.getenv("JAVA_HOME") to test java_home
os.environ["JAVA_HOME"] = "C:\\Program Files\\Java\\jdk1.7.0_25\\bin"
french = u"Chaque plante, chaque graine, chaque particule de matière organique contient des milliers d'atomes animés."
path_to_french_model = "C:\\Text\\Professional\\Digital Humanities\\Packages and Tools\\Stanford Packages\\stanford-postagger-full-2014-08-27\\stanford-postagger-full-2014-08-27\\models\\french.tagger"
path_to_jar = "C:\\Text\\Professional\\Digital Humanities\\Packages and Tools\\Stanford Packages\\stanford-postagger-full-2014-08-27\\stanford-postagger-full-2014-08-27\\stanford-postagger.jar"
french_tagger = POSTagger(path_to_french_model, path_to_jar, encoding="utf-8")
list_of_french_pos_tuples = french_tagger.tag(word_tokenize(french))
#up to this point all is well, but I'm not sure how to successfully create a simplified pos tagset with the French tuples
simplified_pos_tags_french = [(word, map_tag('SOME_ARGUMENT', 'universal', tag)) for word, tag in list_of_french_pos_tuples]
print simplified_pos_tags_french
사람이 알고 있나요? 다른 사람들이이 질문에 제공 할 수있는 통찰력에 대해 감사하게 생각합니다.
감사합니다! NLTK 사람들은 Stanford 태그 세트 ("Crabbe and Candito")에서 보편적 인 태그 세트로의 매핑에 관심이있을 수 있습니다. –
내 기쁨! 필자는 향후 릴리스에서이 맵핑을 포함 할 수 있도록 어떤 시점에서 풀 요청을 시도하고 작성합니다. – duhaime
@duhaime, 감사드립니다. 귀하의 매핑을 촬영하고 Universal POS 태그 프로젝트 (https://github.com/slavpetrov/universal-pos-tags/pull/12)에 기여할 수있는 요청을 작성하여 너와이 SO 페이지. –