, 나는 이미 통해 찾아 여기에서 제안을 내 코드 가속화했습니다 Slow performance of POS tagging. Can I do some kind of pre-warming?느린 POS 태깅 속도를 높이려면 어떻게해야합니까? 내가 POS 태그를 가속화에 대한 몇 가지 질문이 알고 있기 때문에 다른 유래 페이지로 저를 리디렉션하기 전에
내가 파이썬을 사용하고 있습니다를 3.6. nltk를 사용하여 토큰 화 된 ~ 100,000 단어를 포함하는 목록이 있습니다. 이것들은 꽤 큰 목록입니다. 그래서 나는이 모든 단어에 본질적으로 약간의 시간이 걸릴 것이라는 것을 알고 있습니다. 다음과 같이 나는, 외부 술래를로드 한 :
def tag_wordList(tokenizedWordList):
from nltk.tag.perceptron import PerceptronTagger
tagger=PerceptronTagger() # load outside
for words in tokenizedWordList:
taggedList = tagger.tag(tokenizedWordList) # add POS to words
return taggedList
이 단계는 상당한 양의 물건을 질주했지만, 10 만 개 단어를 통해, 여전히 1.5 시간 이상을 복용 얻을 (그리고 여전히 실행중인) 촬영. 이 코드는 더 작은 데이터 집합에서 잘 작동합니다. 별로 좋은 개선을 위해 다시 시도 할 것이지만 나는 그다지 개선하지 않고 어느 시점에서 그 목록을 세트로 바꾸려고 노력했다고 믿는다. 효율성 향상을위한 다른 팁이 있습니까?
나는 spacy를 강력히 권장합니다. 그것은 NLTK만큼 빠르고 정확합니다 : https://spacy.io/docs/api/ – mbatchkarov
기다리십시오. 어쨌든'tagger.tag'에 전체 목록을 전달하면 for 루프가 생기는 이유는 무엇입니까? – entrophy
@entrophy 좋은 캐치! 나는 지금까지 알아 차리지 못했고 그것을 고쳤다. 감사! –