赞
踩
文本生成是NLP的最新应用之一。
最近我们被客户要求撰写关于NLP的研究报告,包括一些图形和统计输出。
深度学习技术已用于各种文本生成任务,例如写作诗歌,生成电影脚本甚至创作音乐。但是,在本文中,我们将看到一个非常简单的文本生成示例,其中给定输入的单词字符串,我们将预测下一个单词。我们将使用莎士比亚著名小说《麦克白》的原始文本,并根据给定的一系列输入单词来预测下一个单词。
完成本文之后,您将能够使用所选的数据集执行文本生成。
第一步是导入执行本文中的脚本所需的库以及数据集。以下代码导入所需的库:
- import numpy as np
- from keras.models import Sequential, load_model
- from keras.layers import Dense, Embedding, LSTM, Dropout
下一步是下载数据集。我们将使用Python的NLTK库下载数据集。
download('gutenberg')
您应该看到以下输出:
['austen-emma.txt', 'austen-persuasion.txt', 'austen-sense.txt', 'bible-kjv.txt', 'blake-poems.txt', 'bryant-stories.txt', 'burgess-busterbrown.txt', 'carroll-alice.txt', 'chesterton-ball.txt', 'chesterton-brown.txt', 'chesterton-thursday.txt', 'edgeworth-parents.txt', 'melville-moby_dick.txt', 'milton-paradise.txt', 'shakespeare-caesar.txt', 'shakespeare-hamlet.txt', 'shakespeare-macbeth.txt', 'whitman-leaves.txt']
该文件包含小说“ Macbeth”的原始文本。要从此文件读取文本,可以使用类中的raw
方法:
macbeth_text = corpus.gutenberg.raw('shakespeare-macbeth.txt')
让我们从数据集中输出前500个字符:
print(macbeth_text[:500])
这是输出:
-
- Actus Primus. Scoena Prima.
-
- Thunder and Lightning. Enter three Witches.
-
- 1. When shall we three meet againe?
- In Thunder, Lightning, or in Raine?
- 2. When the Hurley-burley's done,
- When the Battaile's lost, and wonne
-
- 3. That will be ere the set of Sunne
-
- 1. Where the place?
- 2. Vpon the Heath
-
- 3. There to meet with Macbeth
-
- 1. I come, Gray-Malkin
-
- All. Padock calls anon: faire is foule, and foule is faire,
- Houer through
您会看到文本包含许多特殊字符和数字。下一步是清理数据集。
要删除标点符号和特殊字符,我们将定义一个名为的函数pr
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。