总的来说,我对 NLP 还很陌生,但对 Perl 非常擅长,我想知道那里有哪些强大的 NLP 模块。基本上,我有一个包含一堆段落的文件,其中一些是人们的传记。因此,首先我需要查找一个人的姓名,这有助于以后的其余过程。
所以我大致从这样的事情开始:
foreach $PPid (0 .. $PPscalar) {
$paragraph = @PP[$PPid];
if ($paragraph =~ /^(\w+ \w\. \w+|\w+ \w+)( also|)( has served| served| worked| joined| currently serves| has| was| is|, )/){
$possibleName = $1;
$badName = 0;
foreach $piece (@pieces){
if ($possibleName =~ /$piece/){
$badName = 1;
}
}
if ($badName == 0){
push @namePile, $possibleName;
}
}
}
因为大多数名称都从段落的开头开始。然后我正在寻找表示 Action 或拥有的关键字,但现在,它会挑选出额外的垃圾,而不是名字。必须有一个模块来做到这一点,对吧?
最佳答案
从数据中提取名称很困难。有多种解决方案。对于命名实体提取,您有以下内容
Net::Calais 是迄今为止速度和准确性的最佳选择。如果您需要将底层实现开源,请使用斯坦福图书馆。
关于Perl 和 NLP,从传记中解析名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3259035/