这似乎是个麻烦事,几十篇关于中国的英文文章,有些地名,专有名词都是拼音形式,如何通过程序将这些拼音筛选出来?

2018-04-17 14:46:48 +08:00
 tianxiacangshen
2836 次点击
所在节点    程序员
15 条回复
hatcloud
2018-04-17 15:20:18 +08:00
拼音的结构型非常强,比如 BeiJing 必然是 B(声母) ei(韵母) J(声母) ing(韵母) 这样的,而声母和韵母都是有限的集合,是不是可以通过先匹配是否有复数个这样的 声母 - 韵母 对来判断英文文章里面的拼音呢?
仅提供思路,没细想过
goreliu
2018-04-17 15:28:58 +08:00
可以把所有单字的拼音打个表(网上很容易找到),然后依次匹配,能匹配上超过两个连续单字拼音的单词就算拼音词,需要注意一些特殊情况(比如儿化音 r 之类)。
Sylv
2018-04-17 15:30:58 +08:00
好奇想问下筛选出这些拼音的目的是什么?
murmur
2018-04-17 15:33:03 +08:00
这叫命名实体识别 应该是很老的研究方向了 英文应该只会比中文更简单
fgodt
2018-04-17 15:35:36 +08:00
使用常用英文单词就能筛选出大致结果了,然后再精细筛选
hsuan
2018-04-17 15:37:58 +08:00
声母韵母的组合不就那么些,如果一个单词可以完全拆解成声母韵母组合,那它就是拼音,当然肯定有误判的。
murmur
2018-04-17 15:47:10 +08:00
@hatcloud 会不会有些文章用粤语拼音或者按英文的习惯写读音呢 比如 peking
WildCat
2018-04-17 15:52:10 +08:00
此贴终结:

https://stanfordnlp.github.io/CoreNLP/

斯坦福出品。

noNOno
2018-04-17 20:04:20 +08:00
一个简单的方法,将英文词典作为一个词典表,在文章中进行匹配
非匹配的部分就是拼音.
这样通过匹配词典的方法筛选出拼音.
congeec
2018-04-17 21:43:16 +08:00
用英文拼写检查,拼音肯定是错的。这不就过滤出来了
John60676
2018-04-17 23:08:15 +08:00
@congeec “ man ” 对还是错
congeec
2018-04-17 23:31:40 +08:00
@John60676 这个就无能为力了。不过我也没见过哪个地名叫 man

We had fun at man..
yuanfnadi
2018-04-18 09:18:40 +08:00
@congeec man ha dun
Lanceliel
2018-04-18 09:34:50 +08:00
这个需求所在的工作流程中,是否允许对自动筛选所得的初步结果进行人工审核以修正结果集?
如果要求自动输出高正确率的专有名词列表,这就是个不折不扣的 NLP 问题,请参考 4 楼和 8 楼的回答。
如果工作流&&工作量允许人肉检查,那么实际只需要为人类核查员标示“可能是拼音的词”,有个无需依赖外部库的办法:现行汉语拼音方案中单个字可能出现的拼音组合大约是四百个,逐词匹配是否含且仅含以上组合(以及分字符)。如果原文中含有威妥玛 /耶鲁等其他拼音方案的话这个列表还会更长一点。

至于为什么这种基于拼写匹配的结果必须人工审核……请看以下例子:
The most straightforward method for a crimp to shanghai a sailor was to render him unconscious, forge his signature on the ship's articles, and pick up his "blood money."
根据上下文可以判断,这段话中的 shanghai 是一个英语动词,而非地名“上海”。
hatcloud
2018-04-18 15:45:13 +08:00
@murmur #7 peking 算英文单词了吧?就像 China,Tofu,这些词一样。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/447486

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX