【发布时间】:2013-07-13 16:59:49
【问题描述】:
我有如下 UTF-8 Unicode 文本文件(非英语)
所以我在python中将编码标记为UTF-8并将文件导入python。
# -*- coding: utf-8 -*-
我用“。”标记了句子。并得到句子的列表。
现在我需要与另一个 unicode 单词列表进行比较,并找出每个句子中是否有这些单词。
这是我的代码。但它只显示了第一个匹配项。
for sentence in sentences:
for word in sentence.split(" "):
if word in pronouns:
print sentence
编辑:
最后我注意到源文本文件中有无效的 unicode 字符。 这里描述Tokenizing unicode using nltk
【问题讨论】:
-
您向我们展示的内容并不明显。你确认句子中有多少项目了吗?大海捞针不止一个代词吗?
-
如您所见,有 6 个句子。并且有一组代词。这些句子中的每一个都以列表中的一个代词开头。所以它假设要一个一个地显示所有的句子。
-
您最好只使用
sentence.split()。某些字母可能包含与" "不匹配的空白字符。 -
还要注意三个句子以同一个代词开头。
-
对不起,我不够清楚。你有一个名为“句子”的列表,你认为它有 6 个项目,因为你的眼球告诉你我们的数据中有 6 个句子。但也许程序看事物的方式与你的眼睛看事物的方式不同。如果您尝试 print('len(sentences) = ' + len(sentences)) 输出是什么?你真的有你期望列表中的 6 个句子吗?我正在讨论与@KarTo 相同的编码等问题,明智地建议需要将其作为问题的可能来源进行探索。