Parsim Wikipedia负责4个团队的NLP任务

精华液


事实证明,为此只需运行以下命令即可:


git clone https://github.com/attardi/wikiextractor.git cd wikiextractor wget http://dumps.wikimedia.org/ruwiki/latest/ruwiki-latest-pages-articles.xml.bz2 python3 WikiExtractor.py -o ../data/wiki/ --no-templates --processes 8 ../data/ruwiki-latest-pages-articles.xml.bz2 

然后用脚本进行后期处理


 python3 process_wikipedia.py 

结果是完成的.csv文件.csv携带。


很明显:


  • 可以将http://dumps.wikimedia.org/ruwiki/latest/ruwiki-latest-pages-articles.xml.bz2更改为所需的语言,更多详细信息请参见[4]
  • 关于wikiextractor参数的所有信息都可以在手册中找到(与法术力不同,似乎连官方基座都没有更新);

后处理脚本将Wiki文件转换为如下表:


IDXarticle_uuid句子整句整句长度
074fb822b-54bb-4bfb-95ef-4eac9465c7d7Jean I de Chatillon(潘特夫尔伯爵)Jean I de Chatillon ...吉恩·德·沙蒂隆伯爵夫人五世38
1个74fb822b-54bb-4bfb-95ef-4eac9465c7d7在罗伯特·德·维拉的保护下,伯爵O ...受到罗伯特·德·维拉·图·牛津的守卫...18岁
274fb822b-54bb-4bfb-95ef-4eac9465c7d7但是,亨利·德·格罗蒙(Henry de Gromont)但是,亨利·德·格罗蒙·格拉斯对此表示反对。14
374fb822b-54bb-4bfb-95ef-4eac9465c7d7国王为他提供了妻子的另一个重要特征...国王提出了他妻子的另一个重要的身份。48
474fb822b-54bb-4bfb-95ef-4eac9465c7d7吉恩于138年获释并返回法国...吉恩释放了法国一年的婚礼52

article_uuid-伪唯一键,在进行此类预处理后,应保留想法顺序。


为何


也许目前,机器学习工具的开发已达到[8]的水平,从字面上讲,几天就足以建立一个有效的NLP模型/管道。 仅在缺少可靠的数据集/现成的嵌入/现成的语言模型的情况下才会出现问题。 本文的目的是通过证明几个小时就足以处理整个Wikipedia(理论上讲是NLP中训练单词嵌入的最受欢迎的语料库),从而减轻您的痛苦。 毕竟,如果几天就足以建立一个简单的模型,那么为什么要花更多的时间为该模型获取数据呢?


脚本原理


wikiExtractor将Wiki文章另存为以<doc>块分隔的文本。 实际上,该脚本基于以下逻辑:


  • 取得输出中所有文件的列表;
  • 我们将文件分为文章;
  • 删除所有剩余的HTML标签和特殊字符;
  • 使用nltk.sent_tokenize将句子分为几部分;
  • 为了使代码不会增加到很大的规模并保持可读性,每篇文章都分配了自己的uuid;

作为文本预处理,它很简单(您可以自己轻松剪切):


  • 删除非字母字符;
  • 删除停用词;

数据集是什么,现在呢?


主要用途


实际上,在大多数情况下,在NLP中,您必须处理构建嵌入的任务。


要解决此问题,通常使用以下工具之一:


  • 现成的矢量/单词嵌入[6];
  • CNN的内部状态接受了诸如确定错误句子/语言建模/分类等任务的培训[7];
  • 以上方法的结合;

另外,已经多次显示[9],作为嵌入句子的良好基准,人们还可以简单地取平均(带有几个次要细节,现在将省略)。


其他用例


  • 我们使用来自Wiki的随机句子作为三元组损失的负面例子;
  • 我们使用假短语的定义训练句子的编码器[10];

俄语Wiki的一些图表


俄语维基百科句子的长度分布


无对数(在X轴上,值限制为20)



以十进制对数



参考文献


  1. 在Wiki上训练的快速文本词向量
  2. 俄语的快速文本和Word2Vec 模型
  3. 很棒的python维基提取器 ;
  4. 带有Wiki链接的官方页面
  5. 我们的后处理脚本
  6. 有关单词嵌入的主要文章: Word2Vec快速文本调优
  7. 当前的几种SOTA方法:
    1. 推断 ;
    2. 生成式预训练 CNN;
    3. ULMFiT ;
    4. 语境表示法 (Elmo);
  8. NLP中的 Imagenet时刻?
  9. 嵌入提案1,2,3,4的基准;
  10. 报价编码器伪造词的定义;

Source: https://habr.com/ru/post/zh-CN425507/


All Articles