我正在尝试通过 python 的正则表达式和 NLTK 处理各种文本-位于http://www.nltk.org/book-。我正在尝试创建一个随机文本生成器,但我遇到了一个问题。首先,这是我的算法:
输入一个句子作为输入-这称为触发字符串-
获取触发字符串中最长的单词
在所有 Project Gutenberg 数据库中搜索包含此单词的句子 - 不管大写小写 -
返回包含我在步骤 3 中谈到的单词的最长句子
将步骤 1 和步骤 4 中的句子附加在一起
重复该过程。请注意,我必须在第二句中找到最长的单词并继续这样,依此类推-
到目前为止,我已经能够对前两个句子执行此操作,但我无法执行不区分大小写的搜索。Project Gutenberg 的整个句子数据库可通过gutenberg.sents()
函数获得,但正则表达式 - 不区分大小写的搜索实际上是不可能的,因为gutenberg.sents()
书籍中的句子输出如下 - 在列表格式列表中 - :
例子:莎士比亚的麦克白的所有句子都是通过打字来调用的
import nltk
from nltk.corpus import gutenberg
gutenberg.sents('shakespeare-macbeth.txt')
进入 python shell 命令行,输出为:
[['[', 'The', 'Tragedie', 'of', 'Macbeth', 'by', 'William', 'Shakespeare', '1603', ']'],
['Actus', 'Primus', '.'], .......]
与[威廉莎士比亚的麦克白悲剧,1603]和Actus Primus。是前两句。
无论它是大写/小写,我如何才能找到我正在寻找的单词?我非常需要帮助,因为过去两天我一直在修补这个问题,而且它开始让我感到紧张。非常感谢。