【问题标题】:Counting language frequencies in a pandas data frame using langdetect使用 langdetect 计算 pandas 数据框中的语言频率
【发布时间】:2019-12-09 17:38:30
【问题描述】:

我想在推文数据集中查找不同语言的频率。我最终只想使用英文的推文,但也想找出其他语言的频率。

我已经使用 langdetect 在我的数据集中检测到推文的语言,现在我想计算每种语言的频率。这是我检测语言的代码:

from langdetect import detect    
import pandas as pd
data_path = "./output_1.csv"
df =  pd.read_csv(data_path, index_col=0)

for index, row in df.iterrows():
    print(detect(row['text']))
    if detect(row['text']) == "en":
        print(row['text'])

我想使用列表属性计数来计算频率:

using the list i = ['en','fr','es','it','cs','pt']
d = {x:i.count(x) for x in i}
print d

如何对使用 langdetect 获得的数据使用 count 属性?

【问题讨论】:

  • 您有一个名为text 的列,其值为语言?在那种情况下可能是pd.Series.value_counts
  • @ALollz 我正在努力创建一个单独的列,其中仅包含语言检测的输出。我试过df["language"] = (detect(row['text'])) 但这只是使用第一行而不是单独使用它们。你有什么建议吗?

标签: python pandas frequency


【解决方案1】:

要创建一个包含您可以执行的语言的单独列:

df['language'] = df['text'].apply(lambda x: detect(x))

然后计算你可以做的频率:

pd.DataFrame(df.groupby('language').text.count().sort_values(ascending=False))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-23
    • 1970-01-01
    • 2021-12-12
    • 2014-03-01
    • 2018-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多