Wayward是一个Python包,用于从单个文档或文档组中识别特征词。
项目描述
Wayward是一个Python包,用于从单个文档或文档组中识别特征词。它可以用于关键词提取和相关的任务,并可以为分类器创建有效的稀疏表示。最初创建此包是为了为词云提供词权重。
它不是使用简单的词频来估计单词和短语的重要性,而是通过称为贪婪语言模型的统计模型来权衡术语。这些模型擅长选择区分文本文档集合中其他文档的特征词。
为此,需要大量文档作为背景集合,以便与感兴趣的文档进行比较。这可以是一篇报纸文章的随机样本,但许多应用更适合采用自然集合,例如定期出版物,并为单独的部分(例如单个期号或年度期号组)拟合模型。
有关贪婪语言模型及其应用的更多信息,请参阅参考文献部分。
Wayward 不执行词云可视化。为此,您可以将其输出粘贴到类似 http://wordle.net 或 IBM Word-Cloud Generator 的工具中。
安装
可以从 PyPI 安装最新版本
$ pip install wayward
或者克隆 git 仓库,并使用 Poetry 以可编辑模式安装包
$ git clone https://github.com/aolieman/wayward.git $ cd wayward/ $ poetry install
用法
>>> quotes = [ ... "Love all, trust a few, Do wrong to none", ... ... ... "A lover's eyes will gaze an eagle blind. " ... "A lover's ear will hear the lowest sound.", ... ] >>> doc_tokens = [ ... re.sub(r"[.,:;!?\"‘’]|'s\b", " ", quote).lower().split() ... for quote in quotes ... ]
ParsimoniousLM 使用所有文档标记作为背景语料库进行初始化,然后接受单个文档的标记作为输入。其 top() 方法返回最高概率的术语及其概率
>>> from wayward import ParsimoniousLM >>> plm = ParsimoniousLM(doc_tokens, w=.1) >>> plm.top(10, doc_tokens[-1]) [('lover', 0.1538461408077277), ('will', 0.1538461408077277), ('eyes', 0.0769230704038643), ('gaze', 0.0769230704038643), ('an', 0.0769230704038643), ('eagle', 0.0769230704038643), ('blind', 0.0769230704038643), ('ear', 0.0769230704038643), ('hear', 0.0769230704038643), ('lowest', 0.0769230704038643)]
SignificantWordsLM 类似地使用背景语料库进行初始化,但随后接受一组文档标记作为输入。其 group_top 方法返回最高概率的术语及其概率
>>> from wayward import SignificantWordsLM >>> swlm = SignificantWordsLM(doc_tokens, lambdas=(.7, .1, .2)) >>> swlm.group_top(10, doc_tokens[-2:], fix_lambdas=True) [('much', 0.09077675276900632), ('lover', 0.06298706244865138), ('will', 0.06298706244865138), ('you', 0.04538837638450315), ('your', 0.04538837638450315), ('rhymes', 0.04538837638450315), ('speak', 0.04538837638450315), ('neither', 0.04538837638450315), ('rhyme', 0.04538837638450315), ('nor', 0.04538837638450315)]
有关更真实数据的可运行示例,请参阅 example/dickens.py
起源和重启
此软件包最初由阿姆斯特丹大学的 Lars Buitinck 编写的 WeighWords。它提供了一个高效的简洁语言模型实现,以及非常易于使用的 API。
最近在语言建模方面的创新,即显著词语语言模型,导致了在软件包中添加双向简洁语言模型。这个新版本针对 python 3.x,经过长时间的沉寂后,需要一个全新的名字。选择“Wayward”这个名字是因为它与“WeightWords”发音相似,同时也是对简洁语言建模的一种致敬:它揭示了哪些术语“偏离”背景集合最远。简洁化算法对已由背景模型充分解释的术语进行折扣,直到最偏离的术语脱颖而出。
有关最重要的更改概述,请参阅 变更日志
参考文献
D. Hiemstra, S. Robertson, and H. Zaragoza (2004). Parsimonious Language Models for Information Retrieval. Proc. SIGIR’04.
R. Kaptein, D. Hiemstra, and J. Kamps (2010). How different are Language Models and word clouds?. Proc. ECIR’10.
M. Dehghani, H. Azarbonyad, J. Kamps, D. Hiemstra, and M. Marx (2016). Luhn Revisited: Significant Words Language Models. Proc. CKIM’16.
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源代码发行版
构建发行版
wayward-0.3.2.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ebb680e12025591af59ed3766db4ccd30d2c684123865fc8e53278f090eaeada |
|
MD5 | eff701230941c7d09db1fd6698134c27 |
|
BLAKE2b-256 | d7e6fc5cec12e69ee9e25d2dcc46f4fa4fd4cce708d406a8cfaa2eb6275f2206 |