python - NLTK FreqDist 使用 pandas 到表

标签 python pandas nltk

我有使用 NLTK 得到的频率分布:

[(('ingeniería', 'informática'), 30), (('tecnologías', 'información'), 26), (('sistemas', 'información'), 19), (('big', 'data'), 16), (('ingeniería', 'software'), 14), (('ingeniero', 'técnico'), 11), (('bases', 'datos'), 10), (('información', 'comunicación'), 10), (('tecnologías', 'información', 'comunicación'), 10), (('sistemas', 'operativos'), 9)]

我想将其转换为表格/数据框,最好使用 pandas。

最佳答案

fdist = nltk.FreqDist( ... )    
df_fdist = pd.DataFrame.from_dict(fdist, orient='index')
df_fdist.columns = ['Frequency']
df_fdist.index.name = 'Term'
print(df_fdist)
df_fdist.to_csv(...)

或者:

def cond_freq_dist(data):
    """ Takes a list of tuples and returns a conditional frequency distribution as a pandas dataframe. """

    cfd = {}
    for cond, freq in data:
        try:
            cfd[cond][freq] += 1
        except KeyError:
            try:
                cfd[cond][freq] = 1
            except KeyError:
                cfd[cond] = {freq: 1}

    return pd.DataFrame(cfd).fillna(0)

关于python - NLTK FreqDist 使用 pandas 到表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62054502/

相关文章:

Python Faker 电话号码格式化

python - 完成 pandas(DataFrame) 中的索引和列?

Python - NLTK 训练/测试分割

Python:NLTK 或其他包中的布朗聚类?

python - 给定一个输入字符串,如何在 O(k logN + W) 时间内搜索所有变位词,其中 W 是输出大小,k 是字符串中的最大字符数?

python - 如何查找字符串是否包含不在另一个字符串中的字符

python - 如何从数据框( Pandas )打印特定值(字符串)的数据

python - 基于字符串匹配打印列表的二维矩阵

python - Python 中的 groupby 会生成列或数据框吗?

python - 如何标记 NLTK 中的字符串句子?