如何检测数据框对象的语言?

How to detect language of a dataframe object?

我想在我的数据框评论中创建一个新列,提供对象类型的列文本的语言。

我尝试转换为字符串,然后使用 langdetect 中的检测函数,但是,当我 运行 代码时仍然存在类型错误。

我不明白这个问题哈哈

我的代码:

from langdetect import detect


review['langue'] = detect((review['text']).astype(str))

实际结果:

--------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)


TypeError: expected string or bytes-like object

如果我正确理解了你的问题,你就需要

from langdetect import detect
review['langue'] = review['text'].apply(detect)

detect 函数期望 str 作为参数,而不是 pd.Series。相反,您应该将 detect 函数应用于 review['text'] pd.Series.

的每个元素

您可以使用以下代码检测每一行的语言

for index, row in df['text'].iteritems():
    lang = detect(row) #detecting each row
    df.loc[index, 'language'] = lang

添加到 kvorobieb 提供的答案中,您可以创建一个函数,即使在检测未在给定文本中找到任何字母表时它也能正常工作:

from langdetect import detect
def detect_my(text):
   try:
       return detect(text)
   except:
       return 'unknown'

review['langue'] = review['text'].apply(detect_my)