0
단어 목록의 모든 단어가 대화에서 발견되는 횟수를 찾고 있습니다. 각 단어의 개별 빈도를 고려하지 않고 전체 카운트 만 고려합니다. 단어 목록은 uptill 3Python : 텍스트 대화에서 [n-grams가있는] 단어 목록을 찾는 가장 빠른 방법
from nltk.util import ngrams
find = ['car', 'motor cycle', 'heavy traffic vehicle']
data = pd.read_csv('inputdata.csv')
def count_words(doc, find):
onegram = [' '.join(grams) for grams in ngrams(doc.split(), 1)]
bigrams = [' '.join(grams) for grams in ngrams(doc.split(), 2)]
trigrams = [' '.join(grams) for grams in ngrams(doc.split(), 3)]
n_gram = onegrams + bigrams + trigrams
''' get count of unique bag of words present in doc '''
lst = ".".join([i for i in find if i in n_gram])
cnt = np.count_nonzero(np.unique(lst.split(".")))
return cnt
result = data['text'].apply(lambda x: count_words(x, find))
이 단계는 매우 과정이 무거운 대형 데이터 세트의 경우에 실행하는 데 시간이 오래 걸릴 ngrams이 포함되어 있습니다. 현재 접근법을 최적화하는 옵션은 무엇입니까? 아니면 다른 대안 단계가 있습니까?