python - 如何为nlp查找单词的前缀
问题描述
我想为 nlp 目的找到一个单词的前缀(对形态否定感兴趣)。
例如,我想知道“unable”是否定的,但“university”没有任何形式的否定。到目前为止,我一直在使用startswith python函数,但显然可能存在一些问题。
有没有人有查找单词前缀的经验?我觉得应该有一些库或api,但我不确定。
谢谢!
解决方案
如果没有完整的形态分析器,您可以使用例外列表和最长匹配来解决此问题。
例如:您假设un-表示否定。首先,找到更长的前缀(例如uni-),并首先匹配它,然后再查看un-。会有一些例外,例如uninteresting,您可以单独检查。这将是一个相当小的列表。然后,一旦处理了所有的uni- words,任何以un-开头的东西都是候选的,尽管也会有例外,比如under。
如果你有一个基本的单词列表,一个稍微更好的解决方案是可能的:从字符串的开头剪切un-,并检查其余部分是否在你的单词列表中。University将变为versity,它不在您的列表中,因此它不是un-前缀。但是,uninteresting会变得很有趣,也就是说,在这里你找到了一个有效的前缀。为此,您只需要一个非否定词列表。当然,您也可以将其用于其他前缀,例如alpha privative,因为在非典型中,其余的典型将在您的列表中。
如果您没有这样的列表,只需将文本拆分为标记,对它们进行排序和唯一化,然后向下扫描以候选前缀开头的单词行。这有点乏味,但相关单词的数量并没有那么大。这就是我们 30 年前在 NLP 中所做的事情...... :)
推荐阅读
- javascript - 将 Nodejs 与已经制作的 HTML/CSS 一起使用
- mysql - 选择在哪里为空
- dataset - 如何为 Mask RCNN 创建自己的数据集?
- typescript - 忽略 TypeScript“在配置文件中找不到输入”
- html - Flexbox 前端设计要求容器中的左侧,但右侧拉伸全宽
- javascript - 通过JS创建图像后如何检查图像是否被点击?
- javascript - 使用 React 重定向到外部链接
- ngrx - 使用动作创建器时,从ngrx中的效果分派不同的动作类型
- python - 根据组大小对行进行分类
- java - 空指针访问:变量arrayLocations在该位置只能为空