我写了这个简单的版本只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字符串内的频率还是一起? –