gpt4 book ai didi

python - 快速从句子中提取术语

转载 作者:可可西里 更新时间:2023-11-01 10:01:25 25 4
gpt4 key购买 nike

我从事文本挖掘工作,我的工作重点是生物医学实体(基因、蛋白质、药物和疾病)。我想与您分享一些问题。

现在,我的目标是在生物医学文本(来自 Medline)中找到生物医学实体,并通过术语词典,我可以用其唯一标识符识别找到的每个实体。

为了存储文本、词典和结果,我使用了 MongoDB(一种非 SQL 数据库)。每个摘要都被分成句子,每个句子都存储在一个新记录中(带有标记列表、 block 和词性标签)。为了找到实体,我得到了所有的句子,并为每个句子创建了字典中每个术语的正则表达式(在 Python 中):

for term in dicitonary:
matches = re.finditer(r'(' + term + ')', sentence)
for m in matches:
ini = m.start()
end = m.end()
result.append(ini, end, dictionary.get_identification[term])

但这真的很慢,我有几个 150,000 个摘要的子集(>1,000,000 个句子)。

对我来说,提取更多术语不完全在我的字典中的实体是非常有趣的软匹配,但它可以增加我的运行时间。

我认为我的问题是为每个句子做很多正则表达式(我的字典有 300,000 个条目),因为我必须在句子中找到术语。没有机器学习算法,你怎么能解决这个问题?和 ML 算法?现在,我可以灵活地更改我的编程语言、数据库...

非常感谢!!!

问候,

莱克斯。

最佳答案

不是为每个 term 构建一个 RE,而是构建一个可以捕获所有它们的单独的分离式 RE:

pattern = re.compile("(%s)" % "|".join(re.escape(term) for term in dictionary))

然后使用pattern.finditer

恕我直言,至于“如何使用机器学习”,这个问题太宽泛了。从谷歌搜索“生物医学命名实体识别”开始——有大量关于该问题和各种工具的文献。

关于python - 快速从句子中提取术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11557863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com