Python与阿拉伯语名称实体识别

Python与阿拉伯语名称实体识别,python,internationalization,nlp,ubuntu-14.04,Python,Internationalization,Nlp,Ubuntu 14.04,我正在用阿拉伯语表演一些舞蹈。代码如下: from polyglot.text import Text blob = "مرحبا اسمي rahul agnihotri أنا عمري 41 سنة و الهندية" text = Text(blob) text = Text(blob, hint_language_code='ar') #ar stands for arabic print(text.entities) 在ubuntu中执行上述给定代码后,我得到以下给定错误: Sy

我正在用阿拉伯语表演一些舞蹈。代码如下:

from polyglot.text import Text
blob = "مرحبا اسمي rahul agnihotri أنا عمري 41 سنة و الهندية"
text = Text(blob)
text = Text(blob, hint_language_code='ar') #ar stands for arabic
print(text.entities)
在ubuntu中执行上述给定代码后,我得到以下给定错误:

SyntaxError:文件中的非ASCII字符“\xd9”./ner.py位于第4行, 但未声明编码;寻找 细节

但是,如果我包括--coding:utf-8--它可以工作,下面是输出:

[I-LOC([u'\u0627\u0644\u0647\u0646\u062f\u064a\u0629'])]
这不是我想要的东西。所需的输出应为阿拉伯语,而不是这种方式


仅供参考:已安装所有必需的库。

Utf-8编码文本必须解码。打印时看到的是编码。所以它必须被解码。 我不熟悉polyglot,我无法确认这一点,但请尝试一下

如果要消除文件编码依赖项,则在设置Blob后,请使用: blob.encode'utf-8' 然后在稍后对utf-8进行解码以供打印使用:
printtext.entities.decode'utf-8'

在python中,您可以通过解码这些字节再次获得阿拉伯语文本

Str = "\u0627\u0644\u0647\u0646\u062f\u064a\u0629";
Str = Str.encode('UTF-8','strict');

print (Str.decode("utf-8"))
输出将是

الهندية

我希望这就是您想要的

也许,您应该以适合您运行的平台的unicode编码输出文本。