最近看了一篇NDSS会议上的一篇论文,有关web安全方向和nlp方向的,论文题目为《Game of Missuggestions: Semantic Analysis of Search-Autocomplete Manipulations》。正好自己也想学学nlp。为将来毕业做准备。。。
也算一个小白。。看到论文使用了词向量word2vec算法,便去研究了一下算法原理。
看了很多中英文博客,以及别人推荐的一篇很好的论文《word2vec Parameter Learning Explained》。
word2vec网上资料一大堆,,就不详细赘述了。
之后看完原理就小小实战了一下。python 有一个库gensim 可以直接调用进行训练模型。
选取了wiki的中文语料库进行训练。
数据下载地址为 : https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2
之后便需要进行数据预处理了。使用gensim.Wikicorpus()函数可以处理上述数据。之后i使用get_texts函数可以将语料库中的一篇文章转为text文本格式的一行方便处理。具体使用方法可以参考官方文档。
import logging
from gensim.corpora import WikiCorpus
def main():
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
logging.info("-