代码下载

链接:https://pan.baidu.com/s/1vJohEJ0pc6t4PBK04PiZbg 密码:t7a6


whatlies

可以与spacy语言模型结合,可视化词向量。安装zh_core_web_md、en_core_web_md和whatlies。具体文档可以查看https://github.com/RasaHQ/whatlies

!pip3 install zh_core_web_md-3.0.0-py3-none-any.whl
!pip3 install en_core_web_md-3.0.0-py3-none-any.whl
!pip3 install whatlies

快速上手

spacy模型中的词向量均为几十上百维度的词向量,通过压缩映射至二维空间后,横坐标man,纵坐标woman,就可以将词语的性别倾向可视化出来。

词向量语言模型会学习到人类的刻板印象

大数据时代下社会科学研究方法的拓展—基于词嵌入技术的文本分析的应用

词嵌入测量不同群体对某概念的态度(偏见)

例如nurse是女性,doctor是男性。

制作两维度画轴,其中以woman作纵轴,man作横轴。 nurse、queen一般更多的是女性从业者,因此更接近y轴。 king国王多为男性,所以更接近x轴。

至于动物,女性喜欢养猫,男性喜欢养狗,所以也能体现出词语的性别倾向。

from whatlies import EmbeddingSet
from whatlies.language import SpacyLanguage

lang = SpacyLanguage("en_core_web_md")

words = ["cat", "dog", "fish", "kitten", "man", "woman",
         "king", "queen", "doctor", "nurse"]

emb = EmbeddingSet(*[lang[w] for w in words])
emb.plot_interactive(x_axis=emb["man"], y_axis=emb["woman"])

whatlies也可以对中文进行操作。

from whatlies import EmbeddingSet
from whatlies.language import SpacyLanguage

zh_lang = SpacyLanguage("zh_core_web_md")

zh_words = ["猫", "狗", "鱼", "鲤鱼", "男人", "女人",
         "国王", "王后", "医生", "护士"]

zh_emb = EmbeddingSet(*[zh_lang[w] for w in zh_words])
zh_emb.plot_interactive(x_axis=zh_emb["男人"], y_axis=zh_emb["女人"])

广而告之