2017-08-01 107 views
1

從文檔中我想生成包含某個單詞的所有n元組。查找所有包含某個特定單詞的n-gram

例子:

document: i am 50 years old, my son is 20 years old 
word: years 
n: 2 

輸出:

[(50, years), (years, old), (20, years), (years, old)] 

我知道我們可以生成所有可能的正克並過濾掉字的那些,但我不知道是否有更有效的方法來做到這一點。我正計劃使用PySpark來生成它們。

+1

查看itertools。 – perigon

+0

嗨!比什麼效率更高?你目前在做什麼? – arturomp

回答

0
from nltk.util import ngrams 

DOC = 'i am 50 years old, my son is 20 years old' 


def ngram_filter(doc, word, n): 
    tokens = doc.split() 
    all_ngrams = ngrams(tokens, n) 
    filtered_ngrams = [x for x in all_ngrams if word in x] 
    return filtered_ngrams 


ngram_filter(DOC, 'years', 2) 
相關問題