作为word2vec扩展的上下文编码器(ConEc)

conec的Python项目详细描述


上下文编码器(ConEc)

使用此代码,您可以训练和评估上下文编码器(ConEc),这是word2vec的扩展,它可以从大型语料库学习单词嵌入,当场创建词汇外嵌入,并根据单词的本地上下文区分单词的多个含义。 关于模型和实验的更多细节,请参考paper-当然,如果这些代码对您的研究有帮助,请考虑引用它:

    @inproceedings{horn2017conecRepL4NLP,
      author       = {Horn, Franziska},
      title        = {Context encoders as a simple but powerful extension of word2vec},
      booktitle    = {Proceedings of the 2nd Workshop on Representation Learning for NLP},
      year         = {2017},
      organization = {Association for Computational Linguistics},
      pages        = {10--14}
    }

本守则旨在研究目的。它应该与Python2.7和3版本一起运行——尽管没有任何保证(如果发现bug,请打开问题)!在

安装

您可以从这里下载代码并在您的$PYTHONPATH中包含conec文件夹,或者通过pip安装(仅限库组件):

^{pr2}$

conec库组件

依赖项:numpy, scipy

  • word2vec.py:训练标准word2vec模型的代码,改编自相应的gensim实现。在
  • context2vec.py:从大量文本集合中构建稀疏上下文矩阵的代码;然后可以将该上下文矩阵与相应的word2vec嵌入相乘,得到上下文编码器嵌入:
# get the text for trainingsentences=Text8Corpus('data/text8')# train the word2vec modelw2v_model=word2vec.Word2Vec(sentences,mtype='cbow',hs=0,neg=13,vector_size=200,seed=3)# get the global context matrix for the textcontext_model=context2vec.ContextModel(sentences,min_count=w2v_model.min_count,window=w2v_model.window,wordlist=w2v_model.wv.index2word)context_mat=context_model.get_context_matrix(fill_diag=False,norm='max')# multiply the context matrix with the (length normalized) word2vec embeddings# to get the context encoder (ConEc) embeddingsconec_emb=context_mat.dot(w2v_model.wv.vectors_norm)# renormalize so the word embeddings have unit length againconec_emb=conec_emb/np.array([np.linalg.norm(conec_emb,axis=1)]).T

示例

其他依赖项:sklearn

test_analogy.py和{}包含复制上述论文中讨论的类比和命名实体识别(NER)实验的代码。在

为了运行这个类比实验,假设^{}或{a4}以及{a5}都在一个数据目录中。在

为了运行命名实体识别实验,假设相应的^{}位于data/conll2003目录中。在

如果你有任何问题,请不要犹豫给我一个email当然,如果你发现任何错误或想贡献其他改进,拉请求是非常欢迎的!在

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

推荐PyPI第三方库


热门话题
java将值插入sql表的选定列。使用c等参数#   IF语句的java JList数据添加   java在这种情况下有没有更好的方法来调整哈希值?   java@Valid不会触发@Repository中的验证   java如何在安卓中调整位图的大小   iTextJava。lang.NoClassDefFoundError:com/itextpdf/text/DocumentException   java使用ResourceBundleMessageSource加载一个ressource包(message.properties)的全部内容   java如何通过JasperReports 6动态设置Excel工作表名称。十、   java是编写这个程序的最佳方式   JAVA伊奥。FileNotFoundException:C:\Program Files\Apache软件基金会\Tomcat 8.0\。。\webapps\ROOT\\u cips\config。伊尼   java我正在尝试创建一个TictaToe程序,但是JOptionPane和绘图有问题   垃圾收集为什么java中的finalize()方法不在Finalizer类中?为什么它是在对象类中定义的?   java如何用括号编码替换url中的括号?   java web集成移动应用程序   在netbeans中运行MIDP2应用程序时出现java错误