Wayward是一个python包,它有助于从单个文档或文档组中识别特征术语。
wayward的Python项目详细描述
wayward是一个python包,有助于从 单个文档或文档组。可用于关键字提取 以及几个相关的任务,可以为 分类器。它最初是为单词clouds提供术语权重而创建的。
而不是使用简单的术语频率来估计单词和 短语,它通过称为简约语言的统计模型来衡量术语 模型。这些模型善于提取区分文本的术语 来自集合中其他文档的文档。
为此,最好需要大量的文档 作为背景集合,比较感兴趣的文档。 例如,这可能是报纸文章的随机样本,但对许多人来说 应用程序获取自然收藏(如期刊)效果更好 出版,并使模型适合于单独的部分(例如单独的问题, 或者每年一组的问题)。
有关节俭的更多信息,请参见References部分 语言模型及其应用。
任性并不能使云字形象化。为此,你可以粘贴 它输出到一个类似于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)]
请参阅^{tt5}$以获取具有更真实数据的可运行示例。
原点和重新启动
这个包开始是WeighWords, 作者是阿姆斯特丹大学的拉尔斯·别丁克。它提供了一个有效的 精简的lm实现,以及非常易访问的api。
语言建模的最新创新 模型,导致在这个包中添加了一个双向简约的语言模型。 这个新版本以python 3.x为目标,经过长时间的沉睡之后,应该有一个新的名字。 “Wayward”这个名字之所以被选中,是因为它几乎是一个重量级词的同音字,而且 对简洁的语言建模的一种认可:它揭示了哪些术语最不符合 背景集合。简约算法对 背景模型已经很好地解释了,直到最任性的术语出现 在上面。
有关最重要更改的概述,请参见Changelog。
参考文献
D.Hiemstra、S.Robertson和H.Zaragoza(2004年)。Parsimonious Language Models for Information Retrieval。 触发过程。04年。
R.Kaptein、D.Hiemstra和J.Kamps(2010年)。How different are Language Models and word clouds?。 触发过程。10年前。
M.Dehghani、H.Azarbonyad、J.Kamps、D.Hiemstra和M.Marx(2016年)。 Luhn Revisited: Significant Words Language Models。 触发过程。16岁。