팬더 데이터 프레임에서 두 단어 사이의 유사성을 찾으려고합니다. 여기 내 일상이다NLP - 유사 단어 일치 속도를 높입니다.
import pandas as pd
from nltk.corpus import wordnet
import itertools
df = pd.DataFrame({'word_1':['desk', 'lamp', 'read'], 'word_2':['call','game','cook']})
def max_similarity(row):
word_1 = row['word_1']
word_2 = row['word_2']
ret_val = max([(wordnet.wup_similarity(syn_1, syn_2) or 0) for
syn_1, syn_2 in itertools.product(wordnet.synsets(word_1), wordnet.synsets(word_2))])
return ret_val
df['result'] = df.apply(lambda x: max_similarity(x), axis= 1)
괜찮 으면 작동하지만 너무 느립니다. 속도를 높이는 방법을 찾고 있습니다. wordnet
대부분의 시간이 소요됩니까? Cython? spacy
과 같은 다른 패키지를 사용하고 있습니다.
는 lolz ... 코드의 조각은 익숙; P – alvas
@alvas는, 엡, 나는 경우 다른 포스트에서 stackoverflow.com ;-)에서 차용. 나는 네 것이라고 생각해. – user1700890