自然语言的概率噪声
artext的Python项目详细描述
artext:人工文本生成
自然语言的概率噪声
artext是在不影响人类读者核心意义的情况下,将噪音注入文本的作品。 这类数据可用于许多nlp任务,特别是使模型对噪声/错误输入具有鲁棒性。
这是一项正在进行的工作,我们的实验结果将很快公布。 同时,如果您在研究中使用artext,请引用此存储库。
< Buff行情>注意:噪声通常会增加数据集的词汇量,因为它引入了以前可能不存在的词形变化和拼写变化。因此,要谨慎使用它,特别是对于机器翻译等封闭词汇的神经网络模型。考虑在这种情况下使用基于子词的词汇表(例如bpe
)。
设置
artext
是用python 3.6
开发和测试的,可以通过两种方式安装:
- 使用
pip
:
pip install artext
- 源代码:
git clone https://github.com/fgaim/artext
cd artext
pip install -r requirements.txt
python setup.py install
获取所需资源:
python -m spacy download 'en_core_web_sm' python -m nltk.downloader 'punkt' python -m nltk.downloader 'wordnet'
用法
从命令行使用
为文本文件生成句子(已发送
)或文档(文档
)级别的噪波示例,如下所示:
python -m artext -src source.txt -out output.txt -l sent -er 0.5 -n 10
[或]从源代码中使用inject.py
如下:
python inject.py -src source.txt -out output.txt -l sent -er 0.5 -n 10
使用-h
查看所有选项。
用作库
fromartextimportArtextartxt=Artext()artxt.samples=5artxt.error_rate=0.25sent='This is a sample sentence to be noised.'noises=artxt.noise_sentence(sent)print(noises)
示例
python example.py -er 0.5 -n 10
句子级示例
输入(lang-8中的干净句子):
So , I think if we have to go somewhere on foot , we must put on our hat .
人(lang-8中的错误示例):
所以,我认为如果我们必须步行去某个地方,我们必须戴上我们的帽子。
输出(artext):
- 所以,我认为,如果我们必须在脚上的某个地方,戴上帽子。<;/ins>;
- 所以,如果我们必须步行去某个地方,我们必须穿上<;INS>;!<;ins>;我们的帽子<;ins>;帽子
- 因此,我认为,如果我们要在脚上的某个地方去,我们就必须戴上帽子。
- 因此,我认为如果我们必须步行去某个地方,我们就必须在我们的帽子上放上。
- 所以,我认为如果我们必须在脚上的某个地方,我们必须把帽子戴上。
- 所以,如果我们要步行去某个地方,就必须我们的帽子<;ins>;帽子
- 所以,我认为如果我们必须步行去某个地方,我们必须把帽子戴上。
- 所以,我认为如果我们必须步行去某个地方,我们必须戴上我们的帽子。
- 因此,我认为,如果我们要徒步前往某个地方,我们必须戴上帽子。
- 因此,我认为,如果我们已经有了<;ins>;在<;ins>;在英尺,<;ins>;的某个地方,<;ins>;子结构<;ins>;我们必须将<;ins>;放在帽子上。
文档级示例
输入(lang-8中的干净句子):
This morning I found out that one of my favourite bands released a new album .
I already forgot about Rise Against and it is a great surprise for me, because I haven't listened to them for 2 years .
I hope this band did n't become worse, like many others big ones did , and I 'll enjoy listening to it .
Well , I just have to get it and check it out .
人(lang-8中的错误示例):
今天早上我发现我最喜欢的乐队之一发布了他的新专辑。我已经忘记了与"del"和"ins"抗争,这对我来说是一个很大的惊喜,因为我已经听了他们2年了。我希望这支乐队不会变得更糟,不像其他大乐队那样,<;ins>;然而,<;/ins>;也会喜欢听这首歌。好吧,我只有<;ins>;还有
输出(artext):
- 今天早上我发现我最喜欢的乐队之一发布了一张新专辑。我已经忘记了与<;ins>;一起成长<;/ins>;的斗争,这对我来说是一个巨大的惊喜,因为我已经2年没有听过他们的<;ins>;倾听他们的我希望<;ins>;希望乐队做到了<;ins>;乐队服务<;/ins>;不要变得更糟,像许多其他大公司那样,我会喜欢聆听<;ins>;倾听<;/ins>;它。好吧,我只是想把它送出去看看。
- 今天早上我发现我最喜欢的乐队之一发布了新专辑。我已经忘记了对艾格尼亚斯特的崛起,这对我来说是一个很大的惊喜,
因为我已经2年没有听过他们的歌了。我希望这个乐队不会变得更糟,<;ins>;和其他乐队一样,<;ins>;也会变得很破旧,<;ins>;我也会喜欢听它的。嗯<;ins>;ewll<;/ins>;,我只需要拿到它并检查一下。 - 今天早上我发现我最喜欢的乐队中有一个乐队发行了一张新专辑。我已经忘记了,我已经忘记了,我已经忘记了,我已经忘记了,我已经忘记了,我已经忘记了,我已经忘记了,我已经忘记了,我已经忘记了,我已经忘记了,我已经忘记了,我已经忘记了,我已经忘记了,我已经忘记了,我已经忘记了,我已经忘记了,我将要面对的,我将要面对的,我将成为一个大的惊喜,我已经忘记了,我已经忘记了,我已经忘记了,我已经忘记了;我已经忘记了,我已经忘记了,我已经拥有的,我已经听过的,我已经听过的。gt;列表需要<;/ins>;为他们提供为期2年的服务。我希望这个乐队不会像其他乐队一样变得更糟。s
做了<;ins>;做了<;ins>;检查<;/ins>;它出来。 - 今天早上我发现我最喜欢的乐队发行了一张新专辑。我已经忘记了<;ins>;关于<;ins>;关于<;ins>;关于<;ins>;关于关于<;ins>;关于关于关于<;ins>;关于关于<;ins>;年份<;ins>;。我希望这个乐队不会变得更糟,就像其他乐队一样,我会喜欢听他们的音乐。好吧,我只是<;ins>;稀缺<;/ins>;必须获取<;ins>;获取并检查<;ins>;签出<;ins>;it<;/ins>;
- 这个
早晨我已经<;ins>;因为<;ins>;听他们讲2年。我希望这支乐队不会变得更糟,就像许多其他乐队一样,也不会变得更难,我会喜欢听他们的歌。<;/ins>;好吧,我只需<;ins>;几乎不需要<;ins>;早晨<;ins>;我找到了<;ins>;反对是因为<;ins>;地面<;ins>;外面的<;ins>;反对<;ins>;htat<;ins>;我最喜欢的乐队之一发布了一张新专辑。我已经忘记了&l t;ins>;忘记了反对 - 今天早上我发现我最喜欢的乐队之一发布了一张新专辑。我已经忘记了<;ins>;关于<;ins>;关于<;ins>;关于<;ins>;关于aigainst<;/ins>;关于关于关于<;ins>;关于关于关于关于<;ins>;关于关于关于关于关于<;ins>;年份<;ins>;。我希望这支乐队不会像其他乐队一样变得更糟,像其他乐队一样。好吧,我只是需要<;ins>;让<;/ins>;进入<;/ins>;并查看它!<;/ins>;
- 今天早上我发现我最喜欢的乐队之一发布了一张新专辑。我已经忘记了<;ins>;alraedyy放弃了<;ins>;aagaianst<;/ins>;上升的<;ins>;是<;ins>;一个伟大的惊喜,<;ins>;因为我我已经听了两年了。我希望这个乐队不会变得更糟,就像其他大乐队一样,我会喜欢听的。好吧,我只需要去看看。
- 今天早上,我发现我最喜欢的一个乐队已经发行了一张新的专辑。我已经忘了起床
反对<;ins>;iGaanst<;/ins>;这对我来说是一个惊喜,因为我已经<;ins>;听了<;ins>;我希望这个乐队没有出现。或者,像其他许多大的人一样,他们只做了一件事,我会享受聆听的乐趣。好吧,<;ins>;:<;/ins>;我只是有<;ins>;有取<;ins>;取 - 今天早上,我发现,<;ins>;正在创建<;ins>;out
我最喜欢的乐队之一发布了一张专辑。我已经忘记了关于"上升"对"上升"对"上升"的看法,因为我已经有两年没听过了。我希望这个乐队不会像其他大乐队一样变得更糟,我会喜欢听的。好吧,我只是有<;ins>;让 - 今天早上,我发现我最喜欢的乐队之一发布了一张新专辑。我已经忘记了"上升"<;ins>;"上升"<;/ins>;"反对"这个词,它是一个"好"<;ins>;"对我来说是一个惊喜,因为我已经两年没听过它们了。我希望这支乐队不会变得更糟,就像其他很多乐队一样,我也会喜欢听这首歌。好吗?<;/ins>;我只需要拿到它并查看它。