Java 从文本及其说话人中提取引语的方法

Java 从文本及其说话人中提取引语的方法,java,regex,machine-learning,nlp,grammar,Java,Regex,Machine Learning,Nlp,Grammar,我希望能够从给定的文本中提取引用语及其发言人。为此,我遵循文件第5.2节中提到的规则 规则如下: (1) quote-mark QUOTE quote-mark [,] verb [modifier] [determiner] [title] name e.g. "blah blah", said again the journalist John Smith. (2) name [, up to 60 characters ,] verb [:|that] quote-mark QUOTE

我希望能够从给定的文本中提取引用语及其发言人。为此,我遵循文件第5.2节中提到的规则

规则如下:

(1) quote-mark QUOTE quote-mark [,] verb [modifier]
[determiner] [title] name
e.g. "blah blah", said again the journalist John Smith.

(2) name [, up to 60 characters ,] verb [:|that] quote-mark
QUOTE quote-mark
e.g. John Smith, supporting AFG, said: "blah blah".

(3) quote-mark QUOTE quote-mark [; or ,] [title] name
[modifier] verb
e.g. "blah blah", Mr John Smith said.
“引号”是一般的开始和结束引号。“引用”是实际引用文本,“修饰语”是副词,“动词”是报告/交流动词,需要出现在动词词典中,“标题”和“姓名”是人的标题和姓名。这些名字将被视为引语的发言人

对于每个给定的文本,我都有一组NLP注释,指示文本中的哪些词是动词、副词、名称和标题

我正在寻找一种方法,将给定的文本和NLP注释与上面提到的规则相匹配,并从中找到一组引文和它们的发言人。我知道我可以编写硬编码逻辑来表示这些规则,但我想使这些规则可配置


有没有办法用正则表达式、语法分析器或其他方法来处理这个问题?

为什么不用像或这样的规则语言来设计这些规则?为什么不用像或这样的规则语言来设计这些规则?