我寫了這個簡單的版本只python
標準庫,爲教育的原因。
生產代碼應使用spacy
和pandas
import collections
from operator import itemgetter as at
with open("input.csv",'r') as f:
data = [l.split(',', 2) for l in f.readlines()]
spaced = lambda t: (t[0][0],' '.join(map(at(1), t))) if t[0][0]==t[1][0] else []
unigrams = [(i,w) for i, d in data for w in d.split()]
bigrams = filter(any, map(spaced, zip(unigrams, unigrams[1:])))
trigrams = filter(any, map(spaced, zip(unigrams, unigrams[1:], unigrams[2:])))
with open("output.csv", 'w') as f:
for ngram in [unigrams, bigrams, trigrams]:
counts = collections.Counter(ngram)
for t,count in counts.items():
f.write("{i},{w},{c}\n".format(c=count, i=t[0], w=t[1]))
嗨,歡迎來到SO,你能包括一些你想要的代碼嗎?主要問題是什麼? –
我們不是一個編碼服務。請告訴我們你做了什麼以及你卡在哪裏。 –
你需要使用'open'或'csv.writer'作爲文件寫入的東西,然後我會推薦'''''''''''Counter',這就是它。你想要unique_ID字符串內的頻率還是一起? –