Python以可读格式打印非英语(telugu)文本
我正在处理泰卢固语文本以分析一些文本标记Python以可读格式打印非英语(telugu)文本,python,python-2.7,unicode,utf,Python,Python 2.7,Unicode,Utf,我正在处理泰卢固语文本以分析一些文本标记 >>> sent = "నా పేరు కరీం ఉంది. నేను భారత ఆహార ప్రేమ.".decode('utf-8') >>> text = sent >>> text = nltk.word_tokenize(text) >>> result = nltk.pos_tag(text) >>> for val in result: ...
>>> sent = "నా పేరు కరీం ఉంది. నేను భారత ఆహార ప్రేమ.".decode('utf-8')
>>> text = sent
>>> text = nltk.word_tokenize(text)
>>> result = nltk.pos_tag(text)
>>> for val in result:
... print list(val)[0], list(val)[1]
...
నా JJ
పేరు NNP
కరీం NNP
ఉంది NNP
. .
నేను VB
భారత JJ
ఆహార NNP
ప్రేమ NNP
这样我可以在泰卢固看到结果
对于相同的文本,当我尝试这种方法时,结果是unicode字符串如何在泰卢固打印令牌?
>>> s = "నా పేరు కరీం ఉంది. నేను భారత ఆహార ప్రేమ.".decode('utf-8')
>>> res = s.split(' ')
>>> res[0]
u'\u0c28\u0c3e'
>>> type(res[0])
<type 'unicode'>
>>> res[0].encode('ascii')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
>>> res[0].encode('utf-8')
'\xe0\xb0\xa8\xe0\xb0\xbe'
test.py包含:
s = "నా పేరు కరీం ఉంది. నేను భారత ఆహార ప్రేమ.".decode('utf-8')
a = s.split()
for i in a:
print i
因为我的控制台中没有Telugu,所以最简单的答案是通过使用在浏览器中运行python会话,这样就可以解决终端字符集等方面的许多问题 然后我可以简单地
打印结果:
s = "నా పేరు కరీం ఉంది. నేను భారత ఆహార ప్రేమ.".decode('utf-8')
a = s.split()
for i in a:
print(i)
నా
పేరు
కరీం
ఉంది.
నేను
భారత
ఆహార
ప్రేమ.
请注意,将此类内容放入脚本文件时,您需要使用以下魔线启动该文件:
#!/usr/bin/env python
#coding:utf-8
在推断OP运行的是python2之后,我进行了实验,发现在一个支持utf-8的终端中,以下结果在从脚本文件运行时看起来不错:
#!/usr/bin/env python
# coding: utf-8
from __future__ import print_function
import nltk
s = "నా పేరు కరీం ఉంది. నేను భారత ఆహార ప్రేమ." #.decode('utf-8')
a = s.split()
for i in a:
print(i)
text = nltk.word_tokenize(s.decode('utf-8'))
result = nltk.pos_tag(text)
for val in result:
print (list(val)[0].encode('utf-8'), list(val)[1])
$ python Untitled2.py
నా
పేరు
కరీం
ఉంది.
నేను
భారత
ఆహార
ప్రేమ.
నా JJ
పేరు NNP
కరీం NNP
ఉంది NNP
. .
నేను VB
భారత JJ
ఆహార NNP
ప్రేమ NNP
. .
因为我的控制台中没有Telugu,所以最简单的答案是通过使用在浏览器中运行python会话,这样就可以解决终端字符集等方面的许多问题
然后我可以简单地打印结果:
s = "నా పేరు కరీం ఉంది. నేను భారత ఆహార ప్రేమ.".decode('utf-8')
a = s.split()
for i in a:
print(i)
నా
పేరు
కరీం
ఉంది.
నేను
భారత
ఆహార
ప్రేమ.
请注意,将此类内容放入脚本文件时,您需要使用以下魔线启动该文件:
#!/usr/bin/env python
#coding:utf-8
在推断OP运行的是python2之后,我进行了实验,发现在一个支持utf-8的终端中,以下结果在从脚本文件运行时看起来不错:
#!/usr/bin/env python
# coding: utf-8
from __future__ import print_function
import nltk
s = "నా పేరు కరీం ఉంది. నేను భారత ఆహార ప్రేమ." #.decode('utf-8')
a = s.split()
for i in a:
print(i)
text = nltk.word_tokenize(s.decode('utf-8'))
result = nltk.pos_tag(text)
for val in result:
print (list(val)[0].encode('utf-8'), list(val)[1])
$ python Untitled2.py
నా
పేరు
కరీం
ఉంది.
నేను
భారత
ఆహార
ప్రేమ.
నా JJ
పేరు NNP
కరీం NNP
ఉంది NNP
. .
నేను VB
భారత JJ
ఆహార NNP
ప్రేమ NNP
. .
谢谢,在Jupyer,效果很好。但大多数时候,我需要编写python脚本并在终端上运行它。如果我们使用终端,无法解决此问题?显然,您已经为Telugu设置了一个终端。您是否尝试了一个简单的打印(res[0])
来输出它?如果您的终端支持Telugu,那么同样的事情(即打印
)也会起作用。我的终端支持各种Unicode字符,没有任何特殊配置。也许您的脚本文件也是如此。在脚本文件的开头,您需要有SheBang,然后是编码行。@user123您在文件test.py
中有一个非ASCII字符,但是test.py
没有声明应该使用哪个非ASCII编码。您需要在顶部提供一行,如#encoding=utf8
。有关如何指定编码的详细信息,请参阅。谢谢,在Jupyer中,它工作得很好。但大多数时候,我需要编写python脚本并在终端上运行它。如果我们使用终端,无法解决此问题?显然,您已经为Telugu设置了一个终端。您是否尝试了一个简单的打印(res[0])
来输出它?如果您的终端支持Telugu,那么同样的事情(即打印
)也会起作用。我的终端支持各种Unicode字符,没有任何特殊配置。也许您的脚本文件也是如此。在脚本文件的开头,您需要有SheBang,然后是编码行。@user123您在文件test.py
中有一个非ASCII字符,但是test.py
没有声明应该使用哪个非ASCII编码。您需要在顶部提供一行,如#encoding=utf8
。有关如何指定编码的详细信息,请参阅。请改用print res[0]
。您有什么问题?你为什么不直接打印结果:print(res[0])
?对不起,我弄错了。打印正确。但这个问题仍然存在。如果您能看到问题中的编辑,我将不胜感激。您爱上了python-错误消息中甚至包含一个关于如何处理错误的网页链接。请尝试print res[0]
。您有什么问题?你为什么不直接打印结果:print(res[0])
?对不起,我弄错了。打印正确。但这个问题仍然存在。如果你能看到有问题的编辑《爱上python》,我将不胜感激——错误消息甚至包括一个关于如何处理错误的网页链接。