Skip to content

TannyXie/NLP_Debias_Word_Embedding

Repository files navigation

NLP_Debias_Word_Embedding

corpus

英文

wikipedia corpus: https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-abstract.xml.gz
GloVe 的 wiki 预训练: http://nlp.stanford.edu/data/glove.6B.zip

中文

职业名称: https://github.com/imhuster/funNLP/blob/master/data/%E8%81%8C%E4%B8%9A%E8%AF%8D%E5%BA%93/professions.txt
预处理词向量: https://github.com/Embedding/Chinese-Word-Vectors
生语料: https://dumps.wikimedia.org/zhwiki/latest/
已确定用中文来做。

实验步骤

  1. 使用预训练词向量
    原始语料共有 7569 个职业, 调用 getFromPretrained.ipynb得到预处理语料中,和“他”&“她”余弦距离最近的十个职业词汇
  2. 使用生语料结合 word2vec 训练模型
sudo pip3 install gensim
python3 xml2vec.py zhwiki-latest-pages-articles-multistream.xml.bz2 wiki.zh.txt
brew install opencc
opencc -i wiki.zh.txt -o wiki.zh.txt.jian -c t2s.json

之后调用 wikiprocess.ipynb 训练出模型并保存
3. 性别子空间
利用 2 中得到的模型取出 10 对具有确定性别指向的词对(如:男->女,他->她,国王->王后),作为定义集。求出每个定义集中词向量的均值,再相加,得到一个矩阵。取其奇异值分解矩阵的前 k 行,得到维度为 k 的子空间
奇异值分解的算法参考: https://www.cnblogs.com/Shinered/p/9206210.html
4. 纠偏处理
对每一个在 word2vec 词向量词典中的词,若其是职业词,则按照取其在子空间上的垂直分量的单位向量作为新的词向量。用此办法完成纠偏
5. 性能评价

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published