自然语言的概率噪声

artext的Python项目详细描述


artext:人工文本生成

licensegithub issuespypicircleci

自然语言的概率噪声

artext是在不影响人类读者核心意义的情况下,将噪音注入文本的作品。 这类数据可用于许多nlp任务,特别是使模型对噪声/错误输入具有鲁棒性。

这是一项正在进行的工作,我们的实验结果将很快公布。 同时,如果您在研究中使用artext,请引用此存储库。

< Buff行情>

注意:噪声通常会增加数据集的词汇量,因为它引入了以前可能不存在的词形变化和拼写变化。因此,要谨慎使用它,特别是对于机器翻译等封闭词汇的神经网络模型。考虑在这种情况下使用基于子词的词汇表(例如bpe)。

设置

artext是用python 3.6开发和测试的,可以通过两种方式安装:

  1. 使用pip
 pip install artext
  1. 源代码:
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>;我找到了<;ins>;地面<;ins>;外面的<;ins>;htat<;ins>;我最喜欢的乐队之一发布了一张新专辑。我已经忘记了&l t;ins>;忘记了反对<;ins>;反对<;ins>;反对是因为我已经<;ins>;因为<;ins>;听他们讲2年。我希望这支乐队不会变得更糟,就像许多其他乐队一样,也不会变得更难,我会喜欢听他们的歌。<;/ins>;好吧,我只需<;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>;我只需要拿到它并查看它。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java ParsePushReceiver参数   java如何从设备读取完整数据?   java将java_设置为home,但忽略错误   java如何从歌曲中对专辑进行排序?   java libnaude+windows 10 x64+Eclipse   java如何将maven目标更改为如图所示的想法中的quickicon?   java swing布局中心面板,可滚动显示多个窗口窗格   使用MOSQUITO代理的mqtt中的java SSL   java如何通过属性值获取XML字符串   java在服务器每次启动时停止GWT编译   java如何让javac搜索类路径的子目录?   可以比较java中的两个不同类吗?   JAVAAndroid活动内部类中的lang.NoClassDefFoundError   java HttpServletRequest获取请求头参数块   C++socket与java客户端的连接   java如何在Apache commons http客户端上使用SSL客户端证书   使用预编译正则表达式模式提高java速度   JavaRhino将两个已编译脚本合并为一个脚本