假设我有一个名为df.Text
的列,其中包含文本(多于一个句子),我想使用polyglot Detector
来检测语言并将值存储在新列df['Text-Lang']
中,我如何确保还捕获其他细节,如code
和{
testEng ="This is English"
lang = Detector(testEng)
print(lang.language)
退货
name: English code: en confidence: 94.0 read bytes: 1920
但是
^{pr2}$以结束
AttributeError: 'float' object has no attribute 'encode' and Detector is not able to detect the language reliably.
我是不是错误地应用了检测器功能,或者存储了错误的输出还是其他什么?在
首先,如果您只需要
polyglot
进行语言检测,那么最好直接使用pycld2
,这是幕后使用的。它有很多更干净的API。在也就是说,您声明的错误来自于
Text
列中的一个值,它是一个实数。所以你必须把这些值转换成字符串。在下一个问题是最小文本长度。^如果文本太短,{}将引发异常。您必须通过传递
quiet=True
使异常静音。在现在,应用
Detector
将返回一个对象。所以你必须解析它来提取你想要的信息。要提取语言名称,您必须导入icu
模块(它是polyglot
的依赖项,因此您已经安装了它):之后,您可以删除
poly_obj
列。在你可以试试这个:
相关问题 更多 >
编程相关推荐