LangDetect 中如何查看是哪一行产生了 LangDetectException 错误?

How to check which row in producing LangDetectException error in LangDetect?

我有一个推文数据集,其中包含主要来自英语的推文,但也有一些印度语言的推文(例如旁遮普语、印地语、泰米尔语等)。我只想保留英语推文并删除包含不同语言推文的行。 我尝试了这个 [ 并且它适用于示例数据集。但是,当我在我的数据集上尝试它时,它显示错误:

LangDetectException: No features in text.

此外,我已经检查了其他问题 [

适用于示例数据但不适用于原始数据的简单代码:

from langdetect import detect
import pandas as pd

df = pd.read_csv('Sample.csv')
df_new = df[df.text.apply(detect).eq('en')]
print('New df is: ', df_new) 

如何检查哪一行产生了错误?

提前致谢!

为 return 使用自定义函数 True 如果函数 detect 失败:

df = pd.read_csv('Sample.csv')

def f(x):
    try:
        detect(x)
        return False
    except:
        return True

s = df.loc[df.text.apply(f), 'text']

另一个想法是创建由 detect 填充的新列,如果失败 return NaN,最后将缺少值的行过滤到 df1df_new 新列由函数 detect:

的输出填充
df = pd.read_csv('Sample.csv')

def f1(x):
    try:
        return detect(x)
    except:
        return np.nan

df['new'] = df.text.apply(f1)

df1 = df[df.new.isna()]

df_new = df[df.new.eq('en')]