Python和阿拉伯语的名称实体识别

时间:2018-06-07 21:02:14

标签: python internationalization nlp ubuntu-14.04

我正在使用阿拉伯语进行一些NER。代码如下:

INSERT INTO Table(a,b,c,d,e,f,g) 
VALUES (@a,@b,@c,@d,@e,@f,@g);
SET @Result = 'Inserted'
RETURN @Result

在ubuntu中执行上面给出的代码后,我得到以下给定的错误:

  

SyntaxError:非ASCII字符' \ xd9'在第4行的./ner.py文件中,   但没有声明编码;见http://python.org/dev/peps/pep-0263/   细节

但是,如果我包含# - - coding:utf-8 - - 它可以工作,这是输出:

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)

这不是我想要的ouptut。所需的输出应该用阿拉伯语而不是这种方式。

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

2 个答案:

答案 0 :(得分:1)

必须解码Utf-8编码的文本。您在打印时看到的是编码。所以必须解码。 我不熟悉多语言,我无法证实这一点,但请尝试这个。

如果要消除文件编码依赖性,则在设置Blob后,使用: blob.encode( 'UTF-8') 然后解码utf-8进行打印: 打印(text.entities.decode( 'UTF-8'))

答案 1 :(得分:0)

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

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

print (Str.decode("utf-8"))

输出将为

الهندية

我希望这就是您要寻找的