Kaggle word2vec NLP 教程 第二部分:词向量

  • 时间:
  • 浏览:0
  • 来源:万人红黑大战棋牌APP_万人红黑大战棋牌APP官网

接下来,另一个人需要一种生活特定的输入格式。 Word2Vec 需要单个语录,每个语录还会 一列单词。 换句话说,输入格式是列表的列表。

第二累积的教程代码在这里。

…虽然另一个人使用的训练集相对较小,但肯定不完美:

另一个人都都可以 看一下输出,看看它与第 1 累积的不同之处:

在 Python 中,另一个人将使用gensim包中的 word2vec 的优秀实现。 否则 你还那么 安装gensim,则需要安装它。 这里有可是我所含 Python Word2Vec 实现的优秀教程。

恭喜你到目前为止成功通过了一切! 让另一个人来看看另一个人在 75,000 个训练评论中创建的模型。

译者注:原文中这里的解释有误,已修改。

分布式词向量强大,可用于你这个 应用,尤其是单词预测和转换。 在这里,另一个人将尝试将它们应用于感情是哪几种 分析。

最近斯坦福大学的工作也将角度学习应用于感情是哪几种 分析;另一个人的代码以 Java 提供。 否则 ,另一个人的法子依赖于语录解析,必须直接应用于任意长度的段落。

虽然 Word2Vec 不像你这个 角度学习算法那样需要图形除理单元(GPU),但它是计算密集型的。 Google 的版本和 Python 版本都依赖于多守护任务管理器(在你的计算机上并行运行多个守护任务管理器以节省时间)。 为了在合理的时间内训练你的模型,你需要安装 cython(这里是指南)。 Word2Vec 可在那么 安装 cython 的情况表下运行,但运行它需要几天而还会 几分钟。

Word2vec,由 Google 于 2013 年发表,是一种生活神经网络实现,都都可以 学习单词的分布式表示。在此事先否则 提出了用于学习单词表示的你这个 角度或循环神经网络架构,否则 哪几种的主要间题是训练模型所需时长间。 Word2vec 相对于你这个 模型学习得快。

现在到了细节! 首先,另一个人使用pandas读取数据,就像另一个人在第 1 累积中所做的那样。与第 1 累积不同,另一个人现在使用unlabeledTrain.tsv,其中所含 80,000 个额外的评论,那么 标签。 当另一个人在第 1 累积中构建词袋模型时,额外的未标记的训练评论那么 用。 否则 ,否则 Word2Vec 都都可以 从未标记的数据中学习,现在都都可以 使用哪几种额外的 80,000 条评论。

否则 你使用的是 Mac 或 Linux 系统,则都都可以 使用终端内(而还会 来自 Python 内部)的top命令,来查看你的系统算不算在模型训练时成功并行化。 键入:

doesnt_match函数将尝试推断集合中哪个单词与你这个 单词最不类似于于:

本教程的你这个 累积将重点介绍使用 Word2Vec 算法创建分布式单词向量。 (角度学习的概述,以及你这个 你这个 教程的链接,请参阅“哪几种是角度学习?”页面)。

在双核 Macbook Pro 上,使用 4 个工作守护任务管理器来运行,花费必须 15 分钟。 否则 ,它会因你的计算机而异。 幸运的是,日志记录功上都都可以 打印所含信息的消息。

鉴于另一个人特定的训练集,“Latifah”与“女王”的类似于于性最高,也就不足为奇了。

选择参数不须容易,否则 一旦另一个人选择了参数,创建 Word2Vec 模型就很简单:

现在另一个人都都可以 应用此函数,来准备 Word2Vec 的输入数据(这将需要几分钟):

何如将可是我段落分成语录不须简单。 自然语言所含各种各样的间题。 英语语录否则 以“?”,“!”,“"”或“.”等结尾,否则 间距和大写也还会 可靠的标志。否则 ,另一个人将使用 NLTK 的punkt分词器进行语录分割。为了使用它,你需要安装 NLTK 并使用nltk.download()下载punkt的相关训练文件。

在模型训练时进入终端窗口。 对于 4 个 worker,列表中的第可是我守护任务管理器应该是 Python,它应该显示 80-80% 的 CPU 使用率。

否则 ,与感情是哪几种 分析更相关:

第 2 累积和第 3 累积比第 1 累积假设你更熟悉Python。另一个人在双核 Macbook Pro 上开发了以下代码,否则 ,另一个人还那么 在 Windows 上成功运行代码。否则 你是 Windows 用户否则 使其正常运行,请在论坛中留言何如进行操作!更多完整信息,请参阅“配置系统”页面。

需要注意的可是我小细节是 Python 列表中+=append之间的区别。 在你这个 应用中,这两者是都都可以 互换的,但在这里它们还会 。 否则 要将列表列表附加到可是我列表列表,append仅仅附加外层列表; 你需要使用+=并能连接所有内层列表。

Word2Vec 需要标签来创建有意义的表示。这很有用,否则 现实世界中的大多数数据还会 未标记的。否则 给网络足够的训练数据(数百亿个单词),它会产生底部形态极好的单词向量。具有类似于于含义的词再次跳出在簇中,否则 簇具有间隔,使得都都可以 使用向量数学来再现诸如借喻的你这个 词关系。着名的例子是,通过训练好的单词向量,“国王 - 男人 + 男人 = 女王”。

使用精心解析的语录列表,另一个人已准备好训练模型。 有你这个 参数选项会影响运行时间和联 成的最终模型的质量。 以下算法的完整信息,请参阅 word2vec API 文档以及 Google 文档。

否则 你的 CPU 使用率较低,则否则 还会你的计算机上的 cython 无法正常运行。

另一个人还都都可以 使用most_similar函数来深入了解模型的单词簇:

你否则 会从BeautifulSoup那里得到你这个 关于语录中 URL 的警告。 哪几种还会 用担心(尽管你否则 需要考虑在清理文本时删除 URL)。

否则 ,似乎另一个人有相当好的语义意义模型 - 至少 和词袋一样好。 否则 ,另一个人何如并能将哪几种花哨的分布式单词向量用于监督学习呢? 下一节将对此进行一次尝试。

另一个人的模型并能区分意义上的差异! 它知道男人,男人和孩子彼此更类似于于,而还会 厨房餐厅。 更多的探索表明,该模型对意义上更微妙的差异敏感,类似于于国家和城市之间的差异:

原文:Bag of Words Meets Bags of Popcorn

查看 Google 的代码,文章和附带的论文。 此演示也很有帮助。 原始代码是 C 写的,但它已被移植到你这个 语言,包括 Python。 另一个人鼓励你使用原始 C 工具,但否则 你是初学守护任务管理器员(另一个人需要手动编辑头文件来编译),请注意它还会 用户友好的。

译者:飞龙

协议:CC BY-NC-SA 4.0

自豪地采用谷歌翻译

另一个人为清理数据而编写的函数也与第 1 累积类似于于,尽管现在处于你这个 差异。 首先,为了训练 Word2Vec,最好不须删除停止词,否则 算法依赖于语录的更广泛的上下文,以便产生高质量的词向量。 否则 ,另一个人将在下面的函数中,将停止词删除变成可选的。 最好不须删除数字,但另一个人将其留作读者的练习。