Wayward是一个python包,它有助于从单个文档或文档组中识别特征术语。

wayward的Python项目详细描述


Documentation statusPyPI package version

wayward是一个python包,有助于从 单个文档或文档组。可用于关键字提取 以及几个相关的任务,可以为 分类器。它最初是为单词clouds提供术语权重而创建的。

而不是使用简单的术语频率来估计单词和 短语,它通过称为简约语言的统计模型来衡量术语 模型。这些模型善于提取区分文本的术语 来自集合中其他文档的文档。

为此,最好需要大量的文档 作为背景集合,比较感兴趣的文档。 例如,这可能是报纸文章的随机样本,但对许多人来说 应用程序获取自然收藏(如期刊)效果更好 出版,并使模型适合于单独的部分(例如单独的问题, 或者每年一组的问题)。

有关节俭的更多信息,请参见References部分 语言模型及其应用。

任性并不能使云字形象化。为此,你可以粘贴 它输出到一个类似于http://wordle.netIBM 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岁。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java 安卓碎片问题   java获取通过字符串删除的内容。replaceAll()   java中的三角形数   JavaSpringbean作用域:会话和全局会话   java为什么JavaBeans不序列化类型列表中的属性?   java无法使用Spring和Thymeleaf在视图上传输对象   Java中变量内部的变量   java在Eclipse上调整黄盒大小并保持其大小   java使用Jackson将名称-值对数组反序列化为对象   安卓 Java多变量长度参数   java JavaFX版本的“isDescendingFrom(组件a、组件b)”   java如何在春季发送多个PDF?   java以不同的格式为联系人分配相同的号码   如何从打包到自己的java库中访问资源的文件。罐子   java模块化反射公共闭包原理   java应用程序在使用进程时停止响应。等待()   java React setState不工作,出现错误