pandas 使用langdetect删除非英语文本

k5ifujac  于 2023-06-28  发布在  其他
关注(0)|答案(2)|浏览(132)

我正试图使用langdetect删除文本中所有非英语的语言。

def det(x):
    try:
        language = detect(x)
    except:
        language = 'Other'
    return language

df['langue'] = df['Tweet'].apply(det)
filtered_for_english = df.loc[df['langue'] == 'en']

上面的代码是我尝试过的。它检测每条推文中使用的语言,但不会从我的 Dataframe 中删除非英语推文。
生成的 Dataframe :

0        es
1        es
2        es
3        en
4        en
         ..
14272    en
14273    en
14274    en
14275    it
14276    en
Name: langue, Length: 14277, dtype: object

如何修复此代码?

tcbh2hod

tcbh2hod1#

这个解决方案对我很有效。

from langdetect import detect

def detect_english(text):
try:
    return detect(text) == 'en'
except:
    return False

像下面这样传递pandas数据框,以从数据框中消除非英语文本数据。

df = df[df['text'].apply(detect_english)]

我有5000个样本,上面的实现删除了一些,返回了4721个英语文本数据。
注:直接导入colab从来没有为我工作。我不得不做!pip install langdetect

h5qlskok

h5qlskok2#

我数据的准确性不好,有很多假阴性,例如下面的句子
detect_英语('Room is big,great view.')将返回false,

相关问题