V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
tianxiacangshen
V2EX  ›  程序员

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

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

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

    斯坦福出品。

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

    We had fun at man..
    yuanfnadi
        13
    yuanfnadi  
       2018-04-18 09:18:40 +08:00 via iPhone
    @congeec man ha dun
    Lanceliel
        14
    Lanceliel  
       2018-04-18 09:34:50 +08:00 via Android
    这个需求所在的工作流程中,是否允许对自动筛选所得的初步结果进行人工审核以修正结果集?
    如果要求自动输出高正确率的专有名词列表,这就是个不折不扣的 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
        15
    hatcloud  
       2018-04-18 15:45:13 +08:00
    @murmur #7 peking 算英文单词了吧?就像 China,Tofu,这些词一样。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1098 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 23:45 · PVG 07:45 · LAX 15:45 · JFK 18:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.