• 请不要在回答技术问题时复制粘贴 AI 生成的内容
iblislsy
V2EX  ›  程序员

问一个算法题目,如何求字符串集合中全部公共字串的情况

  •  
  •   iblislsy · Nov 27, 2018 · 3272 views
    This topic created in 2904 days ago, the information mentioned may be changed or developed.

    场景:

    先把实际情况说一下,数据量在 9000w 行,每行都是“一个字符串+一个种类”,字符串长度平均在 1000 位左右

    1.字符串类似'abcdefg','aabbcc','aabcc',没有实际英语含义。

    2.每个字符串都有一个种类, 'dog','cat,'car', 一共 10 种种类。

    3.显然数据集的大小是 9000w 行 × 2 列 的 dataframe

    目标:

    1.想观察出同一个种类的字符串有没有共性,由于字符串没有实际的英语含义,所以我的初步想法是通过最长字串的匹配情况来计算相似度,总结出每个种类下字符串的规则。当新的字符串出现时,我能够通过之前的规则来分类。

    期望:

    1.不管是算法层面的,机器学习,深度学习,还是 es 这样引擎方面的,希望能和大家讨论讨论可行的方案

    2.子串的复杂度有点高...还没有好的思路,想了很久,自闭了。

    3.如果我没有表述清楚问题,请指出

    15 replies  •  2018-11-28 12:11:13 +08:00
    akira
    akira
    Nov 27, 2018
    1
    如果字符串是摘要算法产生的,那就有难度了....
    shylockhg
    shylockhg
    Nov 27, 2018
    2
    字符串 hash 画分布图
    shylockhg
    shylockhg
    Nov 27, 2018
    3
    映射到向量空间算距离
    pwrliang
    pwrliang
    Nov 27, 2018
    4
    AC 自动机不就是解决多个串找字串的吗
    midasplus
    midasplus
    Nov 27, 2018
    5
    目标部分没有看懂,按照题目来说,我理解的是,有一个字符串集合 S,然后求 S 中所有字符串的(最长)公共子串?
    iblislsy
    iblislsy
    OP
    Nov 27, 2018
    6
    @111qqz 不是“最长”子串,是“全部”子串的情况,来总结特征
    leriou
    leriou
    Nov 27, 2018
    7
    还是用空间向量计算相似度吧
    ytterbium
    ytterbium
    Nov 27, 2018 via Android
    8
    先用最裸的 lstm 做下分类,要是分类正确率还是随机水平那就说明类别与字串无关
    iblislsy
    iblislsy
    OP
    Nov 27, 2018
    9
    @111qqz 最长的子串是其中一种特征,我希望能找到更多的特征
    iblislsy
    iblislsy
    OP
    Nov 27, 2018
    10
    @leriou 相似度能体现在 abcdefg 的这种字符串顺序上吗,我也不清楚
    leriou
    leriou
    Nov 27, 2018
    11
    @iblislsy 跟顺序没关系, 空间向量是用文本在多个词维度上的夹角计算的, es 也是用这个来计算文档相似度的
    xiyiailoli
    xiyiailoli
    Nov 27, 2018 via Android
    12
    kmp ?
    ccpp132
    ccpp132
    Nov 28, 2018 via Android
    13
    先找一个较短的字符串,把它所有子串弄出来。然后拿这些串对剩下的字符串做多模匹配,统计每个子串出现的次数看是否等于总字符串数目
    iblislsy
    iblislsy
    OP
    Nov 28, 2018
    14
    @leriou 我以前试过余弦距离去计算相似度,效果不好
    lihanfeifan
    lihanfeifan
    Nov 28, 2018
    15
    有没有试过前缀树?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1368 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 16:59 · PVG 00:59 · LAX 08:59 · JFK 11:59
    ♥ Do have faith in what you're doing.