V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
a719114136
V2EX  ›  程序员

大量单词匹配有啥好方法推荐

  •  
  •   a719114136 ·
    gojuukaze · 2022-02-11 12:01:32 +08:00 · 1937 次点击
    这是一个创建于 798 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前有一批文本,一批人名,需求是在文本中提取出匹配的人名

    人名有 300 多个,每段文本大概 1000-3000 字,有啥好的方法

    14 条回复    2022-02-12 04:14:35 +08:00
    wellsc
        1
    wellsc  
       2022-02-11 12:04:10 +08:00   ❤️ 2
    这只能算微量
    rainboat
        2
    rainboat  
       2022-02-11 12:19:55 +08:00
    就这点数据量,直接暴力搜索不就完事了
    humpy
        3
    humpy  
       2022-02-11 12:22:22 +08:00
    自动机
    Dvel
        4
    Dvel  
       2022-02-11 12:25:11 +08:00   ❤️ 2
    0x0208v0
        5
    0x0208v0  
       2022-02-11 12:30:49 +08:00
    最好用命名实体识别+规则匹配,准确度比较高
    TimePPT
        6
    TimePPT  
       2022-02-11 13:30:41 +08:00
    Soar360
        7
    Soar360  
       2022-02-11 13:30:43 +08:00
    暴力 for
    czfy
        8
    czfy  
       2022-02-11 13:32:13 +08:00
    这件事是你就做这一次,还是之后周期性都要做?
    kidlj
        9
    kidlj  
       2022-02-11 13:46:25 +08:00
    名字放到字典里( set, hashmap etc.),分割文本,for 循环文本数组匹配,这是一个 O(N) 效率的算法。

    我开发的一个浏览器插件「遇见单词」( https://github.com/metwords/extensions ),需要在任意一个网页匹配用户的单词表,在单词表里的单词下划线突出显示,是这样实现的。
    DefoliationM
        10
    DefoliationM  
       2022-02-11 13:58:45 +08:00
    ac 自动机
    thevita
        11
    thevita  
       2022-02-11 14:01:46 +08:00
    抛开这个问题,单独只是为了快速落地的话,暴力方法其实挺好的
    ---
    就这个问题来说,可以是一个多模式匹配问题,经典的算法如 AC 自动机
    binux
        12
    binux  
       2022-02-11 14:03:14 +08:00 via Android
    @kidlj 中文要分词
    kidlj
        13
    kidlj  
       2022-02-11 14:08:54 +08:00
    @binux 是噢,没考虑到这个问题,谢谢提醒。
    dayeye2006199
        14
    dayeye2006199  
       2022-02-12 04:14:35 +08:00
    写个正则,然后一段一段文本去匹配?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1117 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:28 · PVG 02:28 · LAX 11:28 · JFK 14:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.