包含多个列表的对象python

时间:2016-04-05 15:37:33

标签: python list token nltk tokenize

我在Python中偶然发现了一个非常奇怪的变量。我正在对多个unicode字符串进行标记操作,如下所示:

with open ("verbatims.txt","r") as verbatims :
    for line in verbatims:
        line = line.decode("utf8")
        tokens = nltk.tokenize.word_tokenize(line)

&安培;当我print(tokens)

[u'Vive', u'la', u'poste', u'...', u'.', u'Le', u'facteur', u'qui', u'a', u'la', u'flemme', u'de', u'sonner', u'pour', u'te', u'remettre', u'ton', u'colis', u'et', u'te', u'dis', u'que', u"t'es", u'absent']
[u'Une', u'honte', u'ce', u'petit', u'postier', u'fain\xe9ant', u'.', u'.']

我有这个奇怪的输出。似乎tokens是包含多个列表的对象。这里只是一个示例,但我有多个列表作为句子。此外,我不能像在普通列表中那样打电话给tokens。我必须打印。

在同一个对象中包含多个列表的问题是,当我使用简单的for...in循环解析对象时,解析器将无法工作并且只返回该对象的最后一个列表。

所以我的问题是:

  • 这些对象是如何调用的?
  • 如何解析此对象?

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试使用encode' utf-8'或者' latin1'

with open ("verbatims.txt","r") as verbatims :
    for line in verbatims:
        line = line.decode("utf8")
        tokens = nltk.tokenize.word_tokenize(line)
        tokens = [x.encode('latin1') for x in tokens] # add this or try with the another

但如果你的标记为[[],[]],则应该在x中进行其他循环,例如(多个列表):

with open ("verbatims.txt","r") as verbatims :
    for line in verbatims:
        line = line.decode("utf8")
        tokens = nltk.tokenize.word_tokenize(line)
        tokens = [a.encode('latin1') for a in x for x in tokens]