Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python以可读格式打印非英语(telugu)文本_Python_Python 2.7_Unicode_Utf - Fatal编程技术网

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》,我将不胜感激——错误消息甚至包括一个关于如何处理错误的网页链接。