0
def add_lexical_features(fdist, feature_vector):
for word, freq in fdist.items():
fname = "unigram:{0}".format(word)
if selected_features == None or fname in selected_features:
feature_vector[fname] = 1
if selected_features == None or fname in selected_features:
feature_vector[fname] = float(freq)/fdist.N()
print(feature_vector)
if __name__ == '__main__':
file_name = "restaurant-training.data"
p = process_reviews(file_name)
for i in range(0, len(p)):
print(p[i]+ "\n")
uni_dist = nltk.FreqDist(p[0])
feature_vector = {}
x = add_lexical_features(uni_dist, feature_vector)
什麼,這是試圖做的是輸出字的評語表的頻率(p是評論列表,p [0]是字符串)。這是有效的......除了它是通過信,而不是我的話。
我還是NLTK的新手,所以這可能很明顯,但我真的無法得到它。
例如,這個目前輸出的東西像一個大名單:
{「一元模型:N」:0.0783132530120482}
這是好的,我認爲這是正確的數量(時間數n出現在整個字母上),但我希望它是通過字,而不是通過字母。
現在,我也希望它通過bigrams來完成,一旦我可以通過單個單詞來實現它,使雙重單詞可能很容易,但是我不太明白它,所以一些指導他們會很好。
感謝。
賓果,謝謝。我可以將它分成兩個單詞,每個單詞都有分割的列表。我知道如何用nltk做到這一點,如果沒有,沒問題。 –