从python中的字符串中提取英语单词

Jin

我有一个文档,每一行都是一个字符串。它可能包含数字,非英文字母和单词,符号(例如!和*)。我想从每一行中提取英语单词(英语单词之间用空格隔开)。我的代码如下,这是我的map-reduce作业的map函数。但是,基于最终结果,此映射器函数仅产生字母(例如a,b,c)频率计数。谁能帮我找到错误?谢谢

import sys
import re

for line in sys.stdin:
    line = re.sub("[^A-Za-z]", "", line.strip())
    line = line.lower()
    words = ' '.join(line.split())
    for word in words:
        print '%s\t%s' % (word, 1)
阿巴内特

您实际上有两个问题。

首先,这:

line = re.sub("[^A-Za-z]", "", line.strip())

这将从行中删除所有非字母。这意味着您将不再有任何空格可分割,因此无法将其分隔为单词。

接下来,即使您没有这样做,也可以这样做:

words = ' '.join(line.split())

这不会给您单词列表,而是给您一个字符串,所有这些单词都串联在一起。(基本上,所有空白行的原始行都转换为一个空格。)

因此,在下一行中,当您执行此操作时:

for word in words:

您正在遍历一个字符串,这意味着每个字符串word都是一个字符。因为这就是字符串:字符的可迭代数。

如果您想要每个单词(正如您的变量名所暗示的那样),那么您已经拥有了这些单词,问题在于您将它们重新加入了一个字符串中。只是不要这样做:

words = line.split()
for word in words:

或者,如果要去除字母和空格之外的内容,请使用正则表达式去除字母和空格之外的所有内容,而不要使用除字母和空格之外的所有内容(包括空格)的正则表达式:

line = re.sub(r"[^A-Za-z\s]", "", line.strip())
words = line.split()
for word in words:

但是,该模式可能仍然不是您想要的。您是否真的要'abc1def'变成一个字符串'abcdef',还是变成两个字符串,'abc'然后'def'您可能想要这样:

line = re.sub(r"[^A-Za-z]", " ", line.strip())
words = line.split()
for word in words:

… 要不就:

words = re.split(r"[^A-Za-z]", line.strip())
for word in words:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

提取非内容英语单词字符串-python

来自分类Dev

从R中的文本中提取英语单词

来自分类Dev

从R中的文本中提取英语单词

来自分类Dev

字符串是随机生成的还是英语单词?

来自分类Dev

如何确定字符串是否为英语单词?

来自分类Dev

如何在Swift 3.0中从字符串中提取单词(英语)和名称?

来自分类Dev

在Python中将非英语单词转换为%分隔的字符串

来自分类Dev

如何找到长随机字符串中可能的英语单词?

来自分类Dev

将字符串中的数字转换为英语单词格式

来自分类Dev

如何检查字符串是否是废话或英语单词集

来自分类Dev

如何在长随机字符串中找到可能的英语单词?

来自分类Dev

从python字符串中提取某些单词

来自分类Dev

从python列表中提取特定的字符串/单词

来自分类Dev

在Swift中从字符串中提取整个单词

来自分类Dev

R中的REGEX:从字符串中提取单词

来自分类Dev

在Powershell中从字符串搜索中提取整个单词

来自分类Dev

从字符串中提取引号中的单词

来自分类Dev

从sql server中的字符串中提取单词

来自分类Dev

从字符串中提取单词到数组中

来自分类Dev

从sql中的字符串中提取匹配的单词

来自分类Dev

当阿拉伯语和英语单词在同一字符串中时,单词会随机播放

来自分类Dev

从字符串中提取“单词”

来自分类Dev

从字符串中提取单词

来自分类Dev

使用python中单词的开始和结束索引从长字符串中提取句子

来自分类Dev

在python中给出开始和结束单词时从字符串中提取文本

来自分类Dev

不可编辑的NSTextfiled,以使其在字符串过长时自动调整大小,例如英语单词到法语

来自分类Dev

在python中,如何从字符串中提取某些字符?

来自分类Dev

从字符串中提取除方括号中的单词以外的所有单词

来自分类Dev

从字符串中提取以特定字符开头的单词

Related 相关文章

  1. 1

    提取非内容英语单词字符串-python

  2. 2

    从R中的文本中提取英语单词

  3. 3

    从R中的文本中提取英语单词

  4. 4

    字符串是随机生成的还是英语单词?

  5. 5

    如何确定字符串是否为英语单词?

  6. 6

    如何在Swift 3.0中从字符串中提取单词(英语)和名称?

  7. 7

    在Python中将非英语单词转换为%分隔的字符串

  8. 8

    如何找到长随机字符串中可能的英语单词?

  9. 9

    将字符串中的数字转换为英语单词格式

  10. 10

    如何检查字符串是否是废话或英语单词集

  11. 11

    如何在长随机字符串中找到可能的英语单词?

  12. 12

    从python字符串中提取某些单词

  13. 13

    从python列表中提取特定的字符串/单词

  14. 14

    在Swift中从字符串中提取整个单词

  15. 15

    R中的REGEX:从字符串中提取单词

  16. 16

    在Powershell中从字符串搜索中提取整个单词

  17. 17

    从字符串中提取引号中的单词

  18. 18

    从sql server中的字符串中提取单词

  19. 19

    从字符串中提取单词到数组中

  20. 20

    从sql中的字符串中提取匹配的单词

  21. 21

    当阿拉伯语和英语单词在同一字符串中时,单词会随机播放

  22. 22

    从字符串中提取“单词”

  23. 23

    从字符串中提取单词

  24. 24

    使用python中单词的开始和结束索引从长字符串中提取句子

  25. 25

    在python中给出开始和结束单词时从字符串中提取文本

  26. 26

    不可编辑的NSTextfiled,以使其在字符串过长时自动调整大小,例如英语单词到法语

  27. 27

    在python中,如何从字符串中提取某些字符?

  28. 28

    从字符串中提取除方括号中的单词以外的所有单词

  29. 29

    从字符串中提取以特定字符开头的单词

热门标签

归档