У меня есть эта функция, и я попытался немного ее изменить для своей цели , но вместо того, чтобы получать bigrams, я получаю униграммы. что мне нужно добавить или изменить? Я действительно новый с питоном и NLTKBigrams and .Join
import nltk
from nltk.corpus import stopwords
from nltk.stem import PorterStemmer
from nltk.tokenize import WordPunctTokenizer
from nltk.collocations import BigramCollocationFinder
from nltk.metrics import BigramAssocMeasures
import re
def get_bigrams(myString):
tokenizer = WordPunctTokenizer()
tokens = tokenizer.tokenize(myString)
bigram_finder = BigramCollocationFinder.from_words(tokens)
bigrams = bigram_finder.nbest(BigramAssocMeasures.chi_sq, 500)
for bigram_tuple in bigrams:
x = "%s %s" % bigram_tuple
tokens.append(x)
result = [x for x in tokens if x not in stopwords.words('english') and len(x) > 3]
return result
filename = raw_input('Enter File Name :')
word_list = re.split('\s+', file(filename).read().lower())
f=open ('test2.csv', 'w')
for line in word_list:
features = get_bigrams(line)
print features
f.write(str(line))
f.write("\n")
передать выходные данные для exmple «Это было давно»
It
has
been
a
long
time
Но я ищу что-то вроде
It has
has been
been a
a long
long time
Я имею в виду «Это было давно», как [это, уже, было, а, долго, время] вместо [он был, был, долгое, долгое время] – Cynthia