注册
登录
Nlp
如何为单词加上“ a”和“ an”前缀?
返回
如何为单词加上“ a”和“ an”前缀?
作者:
狗头军师
发布时间:
2024-04-18 10:55:14 (7天前)
我有一个.NET应用程序,在其中给定了一个名词,我希望它为该单词加上“ a”或“ an”前缀。我该怎么做?
在您认为答案只是简单地检查第一个字母是否是元音之前,请考虑以下短语:
收藏
举报
2 条回复
1#
回复此人
v-star*위위
|
2020-08-23 09-51
下载维基百科 将其解压缩并编写一个快速过滤程序,该程序仅显示文章文本(下载内容通常为XML格式,也包含非文章元数据)。 查找a(n)....的所有实例,并在以下单词及其所有前缀上建立索引(您可以为此使用简单的后缀)。这应该区分大小写,并且您需要最大字长-15个字母? (可选)丢弃所有出现次数少于5次或“ a”与“ an”的投票率少于2/3(或其他阈值-在此处进行调整)的那些前缀。最好保留空前缀,以避免出现极端情况。 您可以通过舍弃其父项共享相同的“ a”或“ an”注释的所有那些前缀来优化您的前缀数据库。 在确定使用“ A”还是“ AN”时,找到最长的匹配前缀,并遵循其前缀。如果您没有在步骤4中丢弃空前缀,那么总会有一个匹配的前缀(即空前缀),否则,对于完全不匹配的字符串,您可能需要特殊的情况(这种输入很少见) 。 您可能没有比这更好的了-它肯定会击败大多数基于规则的系统。 编辑:我已经在JS / C#中实现了这一点。您可以在浏览器中进行尝试,或下载其使用的小型可重复使用的javascript实现。.NET实现是AvsAn在nuget上打包的。这些实现是微不足道的,因此在必要时应该很容易移植到任何其他语言。 原来,“规则”比我想象的要复杂得多: 这是出乎意料的结果,但却是一致的投票 这是一个诚实的决定,但一个金银花灌木 符号:这是一个 0800的数字,或者是牛至的 ∞。 缩略语:这是一个美国航空航天局的科学家,而是一个国家安全局分析师; 一个 FIAT车,但一个美国联邦航空局的政策。 ...这恰恰说明基于规则的系统构建起来很棘手!
编辑
登录
后才能参与评论