Python 如何从csv推文中识别西班牙语和英语文本?

Python 如何从csv推文中识别西班牙语和英语文本?,python,twitter,nlp,Python,Twitter,Nlp,我正在尝试创建一个列,用于从包含多行tweet的数据框中识别英语和西班牙语tweet。理想情况下,英语推文将被归类为1,西班牙语推文将被标记为0 最终目标是能够从我的数据框中过滤出西班牙语推文,以将英语推文保存在新的CSV中。我研究了Textblob、langdetect和fastText的使用,但我发现的所有东西都给出了一次只在一个文本字符串上运行代码的说明 有没有一种简单的方法可以使用Python按语言(英语/西班牙语)对整个数据帧进行分类?在这种情况下可以使用apply方法。以langde

我正在尝试创建一个列,用于从包含多行tweet的数据框中识别英语和西班牙语tweet。理想情况下,英语推文将被归类为1,西班牙语推文将被标记为0

最终目标是能够从我的数据框中过滤出西班牙语推文,以将英语推文保存在新的CSV中。我研究了Textblob、langdetect和fastText的使用,但我发现的所有东西都给出了一次只在一个文本字符串上运行代码的说明


有没有一种简单的方法可以使用Python按语言(英语/西班牙语)对整个数据帧进行分类?

在这种情况下可以使用
apply
方法。以
langdetect
为例:

>>df=pd.DataFrame({“text”:[“你好,这是一条tweet”,“hola esto es un tweet”]})
>>>df[“语言”]=df[“文本”]。应用(检测)
>>>df
文本语言
0你好,这是一条推文
1 hola esto es un tweet es
或者,在您的特定情况下,如果希望0、1作为指示器,您可以执行以下操作:

>>df[“language”]=df[“text”].apply(lambda x:(detect(x)=“en”)*1)
>>>df
文本语言
0你好这是一条推文1
1 hola esto es un tweet 0
  • 我认为有两种方法

    i) 要训练模型以确定文本为西班牙语或英语,请使用 (NLP)

    ii)只需将句子列成一个列表,并使用if-condition with 根据条件给出1或0的西班牙语字符

    希望对你有帮助


@GHOST5454这太棒了,非常感谢您的分享!我尝试了你的代码,它工作得很好,但是我仍然无法用我自己的数据集运行它,数据集包含53000多行。出于某种原因,我一直收到以下错误消息:“LangDetectException:No features in text.”我还发现了这篇文章,我不明白的是如何应用python的异常处理,{try&catch},这是投稿人描述的方式。与其使用
lambda
,不如使用
,您可以将函数传递给
.apply
,其中包含try/except逻辑!首先考虑只对DF的一个子集进行运行,并显示不解析的行,以查看它们是否有意外事件(如数字或代码>没有< /代码>值)。