gpt4 book ai didi

regex - 简单的短语识别

转载 作者:行者123 更新时间:2023-12-01 10:07:41 24 4
gpt4 key购买 nike

我想要识别简单的短语,例如 google calendar 中发生的那些但我不必解析日历条目,而是解析与财务、会计和待办事项列表相关的句子。所以例如我必须解析像

这样的句子

I spent 50 dollars on food yesterday

我需要将信息单独标记为 Reason : 'food' , Cost : 50Time: <Yesterday's Date>

我的问题是我是否需要像这样的完整的自然语言处理在这些问题中给出并使用类似 GATE 的东西

Machine Learning and Natural Language Processing

Natural Language Processing in Ruby

Ideas for Natural Language Processing project?

https://stackoverflow.com/a/3058063/492561

还是使用像 AntLR 这样的东西编写简单的语法并尝试识别它更好。

或者我是否应该真正降低并只定义语法并使用正则表达式。

时间有限,我有大约 45 - 50 天的时间,而且我不知道如何使用 AntLR 或 NLP 库(如 GATE)。

首选语言:Python、Java、Ruby(排名不分先后)

PS:这不是家庭作业,所以请不要这样标记它。

PPS:请尝试用事实给出答案,说明为什么使用特定方法更好。即使特定方法可能不适合时间限制,也请随时分享它,因为它可能会使其他人受益。

最佳答案

您确实可以看看命名实体识别。根据您的问题,我了解到您的域定义非常明确,因此您可以识别与您相关的(少数?)实体(日期、货币、金额、时间表达式等)。如果短语非常简单,您可以采用基于规则的方法,否则它可能很快就会变得太复杂。

只是为了让自己在几秒钟内启动并运行,http://timmcnamara.co.nz/post/2650550090/extracting-names-with-6-lines-of-python-code是您可以做什么的一个非常好的例子。当然,我不希望仅仅 6 行 python 就能获得高精度,但它应该让您了解它是如何工作的:

1>>> import nltk
2>>> def extract_entities(text):
3... for sent in nltk.sent_tokenize(text):
4... for chunk in nltk.ne_chunk(nltk.pos_tag(nltk.word_tokenize(sent))):
5... if hasattr(chunk, 'node'):
6... print chunk.node, ' '.join(c[0] for c in chunk.leaves())

核心思想在第 3 行和第 4 行:在第 3 行,它将文本拆分为句子并迭代它们。在第 4 行,它将句子拆分为标记,运行 "part of speech" tagging在句子上,然后将带有 pos-tagged 的​​句子提供给命名实体识别算法。这是最基本的管道。

总的来说,nltk 是一款非常漂亮的软件,而且文档非常齐全:我会看看它。其他答案包含非常有用的链接。

关于regex - 简单的短语识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8850602/

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