1

我正在编写一段代码,它将从运行文本中提取单词。此文本可以包含文本中可能存在的分隔符,如 \r、\n 等。

我想丢弃所有这些分隔符,只提取完整的单词。我怎样才能用 Python 做到这一点?任何可用于在 python 中处理文本的库?

4

2 回答 2

5

假设您对“单词”的定义与正则表达式模块 ( re) 的定义一致,即字母、数字和下划线,这很容易:

import re
fullwords = re.findall(r'\w+', thetext)

有问题的字符串在哪里thetext(例如,来自打开以供阅读f.read()的文件对象的一个f​​,如果这是您从中获取文本的地方)。

如果您以不同的方式定义单词(例如,您想包含撇号,例如“it's”将被视为“一个单词”),它并不难 - 只需用作findall适当模式的第一个参数,例如r"[\w']+"撇号案子。

如果您需要非常非常复杂(例如,处理在单词之间不使用中断的语言),那么问题会突然变得更加困难,您将需要一些第三方包,例如nltk

于 2010-07-03T17:27:53.087 回答
1

假设您的分隔符是空白字符(如空格\r\n),那么 basicstr.split()会执行您想要的操作:

>>> "asdf\nfoo\r\nbar too\tbaz".split()
['asdf', 'foo', 'bar', 'too', 'baz']
于 2010-07-03T17:28:39.350 回答