Skip to content

中文词义消歧项目(Chinese WSD),基于LSTM + ATTENTION模型架构,Pytorch实现。代码简单,上手容易。

Notifications You must be signed in to change notification settings

Lisennlp/chinese_word_disambiguation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

中文语义消歧

本项目只是提供一个中文词义消歧的思路,如果想要做更精细点的话,那个分类的数据需要质量更高一些,更多一些。

在main.ipynb中,包括数据处理,词向量获取,模型训练等,训练数据和词向量模型的地址在该文件中有写明。 模型的数据直接解压data/data.tar.gz,有三个文件夹,其实只用到了train。

思路

数据集处理

数据集是一个分类数据集,包括校园,新闻,女性,文学四个类别。

- 每个类别包含0 ~ 500不等长度的文本,我们将100以上的文本进行切割为两段;

- 同一个类别的两段拼接,标记为label 1,不同类别的两段标记为0,或者不同类别中低于100长度的文本,两两组合标记为0(为了0,1类别差不多)

模型

项目采用的是LSTM(一层) + ATTENTION的网络结构进行训练

训练

- 将文本进行分词,基于sgns.target.word-word.dynwin5.thr10.neg5.dim300.iter5词向量模型提取词语的词向量;

- 将每个词的词向量进行拼接,输入到模型;

- 训练2分类模型(1代表相似,0代表不相似)

预测

我们训练的时候输入的是两段文本,那么预测应该怎么输入呢?很简单,将包含 歧义词的文本A 和 歧义词的描述或解释B

进行拼接,这里涉及到一个问题,就是歧义词的解释或者描述怎么来?在本项目中,并未加入这一块,但是加入其实也不

难,连接一个baidu或者google的搜索引擎,将搜索到的多个义项分别和原始文本A进行拼接,输入至模型,最后模型将

输出最匹配的那个义项。这个具体怎么用可以看下predict函数,很简单。

结果

分类的结果

result Train Test
Loss 0.246 0.392
Acc 90.12% 83.28%

最后

  • 如果您对本项目的任何内容有所疑问,欢迎大家提issue,我将会在第一时间给您回复;

  • 如果您感觉本项目对于您有所帮助,请给个小星星鼓励下吧,您的鼓励将是我前进的最大动力。

About

中文词义消歧项目(Chinese WSD),基于LSTM + ATTENTION模型架构,Pytorch实现。代码简单,上手容易。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published