以无监督方式在文档集中查找主题。
项目描述
主题查找器(无监督)工作在三个部分的过程。
安装
pip3 install topicfinder
- 对文档集进行分词。这将对文档集应用默认的wildgram分析以进行分词。文档必须以下面的结构存在,即字典列表。docID作为参数是可选的(如果不包含,id是数组中的索引)。
from topicfinder import getTokenLists
ret = getTokenLists([{"text": "boo", "docID": "1"}])
- 按唯一标记及其频率对整个标记集进行排序。
from topicfinder import getTokenLists, getPhrases
ret = getPhrases(getTokenLists([{"text": "boo", "docID": "1"}]))
- 根据相似性对短语进行分组,进行一些词元化(lemmatization)和模糊匹配。它认为任何单词或小于3个字母的词元化单词不可能分组。您还可以设置相似度阈值(1.0是精确匹配)。默认值(目前)为0.75。如果您有一个自定义的tokenType(例如,不是“token”或“noise”),则从wildgram生成,它将在该token上对标记进行分组。例如,在默认设置中,synopsis自动处理将数字组合在一起和否定。
from topicfinder import getTokenLists, getPhrases, groupPhrasesBySimilarity
ret = groupPhrasesBySimilarity(getPhrases(getTokenLists([{"text": "boo", "docID": "1"}])))
ret = groupPhrasesBySimilarity(getPhrases(getTokenLists([{"text": "boo", "docID": "1"}])),threshold=0.8)
## ret is a sorted list (descending order) of the following style of dictionaries
## {"phrases": [#list of phrases#], "tokens": [##list of unique tokens from the documents]}
## descending order by the size of the tokens array
您也可以仅调用
from topicfinder import synopsis
ret = synopsis([{"text": "boo", "docID": "1"}], threshold=0.8)
这将一次性执行步骤1-3。我将其分开,因为在医疗领域,有时需要根据数据集的大小运行和存储数据,或者进行map reduce操作,或者非常小心地处理PHI。
对于担心PHI的人来说——这一切都与互联网无关。它都是本地的。如果您需要,也可以检查代码。
主题查找器还可以通过topicfinder函数应用已知类别。
from topicfinder import topicfinder
ret = topicfinder({"text": "boo", "docID": "1"}, [{"unit": "TEST", "value": "BOO", "token": "boo", "frequency": 10}], threshold=0.8, normalizationCutoff=2)
topicfinder接受单个文档,以字典形式存在,其中text参数是需要分析的文本。topicfinder接受一系列主题(第二个参数),每个主题都是一个类似的字典:单位 - 参考单位(例如UMLS、ICD-10、自定义)值 - 值(例如代码)标记 - 需要匹配的示例短语频率 - 根据过去数据是任意还是真实。如果是任意的,则频率较高的先进行检查。
工作原理如下
- 对于wildgram创建的每个标记
- 对于每个主题,找到频率最高的主题,其标记示例与阈值以上的标记片段相似,并分配该主题。归一化cuffoff是一个简单的词干提取度量,如果较长的比较字符串小于截止值乘以较短的字符串长度,则将其缩短。
- 继续直到所有标记都被分配。
具有自定义tokenTypes或噪声(“否定”、“噪声”)的标记不会被检查。
它返回一个与wildgram生成的标记列表,但每个标记字典都被分配了一个主题键,该键是提供的主题(如果匹配)或空字典(如果不匹配)。
未来工作将包括
- 能够应用注释归一化函数(例如,一组同义词汇总)
- 创建一些默认的归一化函数(例如查询UMLS等) ---- 注意这可能需要连接到互联网才能工作。
- 更好地处理缩写和短词
- 更好地处理数字和时间长度
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
topicfinder-0.1.1.tar.gz (4.5 kB 查看哈希)
构建分布
topicfinder-0.1.1-py3-none-any.whl (6.5 kB 查看哈希)
关闭
topicfinder-0.1.1.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2d9933113648f10e92f906dd43b9bbf6f8bef55699c34ebee5b7ca5d41860745 |
|
MD5 | 23c5ee39d703b4a9d486070b549c86bd |
|
BLAKE2b-256 | 479d7537e8e2b773b46095d5a5a477c37e929c66316b78abb464a7eaee2a4737 |
关闭
topicfinder-0.1.1-py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 01547bb50e7eb4f7eb6d0bd945bdc20d390773fc36b1a0e60f2c6c36e8529cde |
|
MD5 | d492e280997cfc4be75d2cfb4532a315 |
|
BLAKE2b-256 | 5c05eb1a0679425c185dea09ee814e2c40c5848f4c694dc7c28067e91e8da88e |