【问题标题】:Search term identification搜索词识别
【发布时间】:2023-03-22 11:30:01
【问题描述】:

我正在尝试为我的搜索做一个小型分析插件。我想从所有已完成的搜索中分离出有用的搜索词。

例如:

搜索:“我在哪里注册魅力课”

搜索词:“注册”、“魅力类”

我知道如果程序没有我们整个数据的上下文,这是不可能的。但是有什么东西可以用来实现部分结果吗?

【问题讨论】:

    标签: ruby-on-rails ruby search web


    【解决方案1】:

    你可以做的是将字符串分解成字符串数组

    keywords = "where do i register for charms class".split(" ")
    #=> ["where", "do", "i", "register", "for", "charms", "class"]
    

    然后你可以遍历关键字数组。这不是一个完美的解决方案,但它仍然可以帮助您。

    【讨论】:

    • 这不会像@PiKaY 想要的那样工作。他需要“魅力类”是一个关键字,而不是两个。
    【解决方案2】:

    您可以将所有关键字放入一个数组中:

    keywords = ['some keyword', 'another keyword']
    
    string = 'My string with some keyword'
    
    keywords.none?{|keyword| string.include?(keyword)} #=> true/false
    

    【讨论】:

    • 我不会有所有的关键术语来做这件事......在大多数情况下我什至不知道任何术语......但我肯定知道“如何”,“ this", "was" 不是关键词
    • 如果我没听错的话,您想检查那里的单词吗?您可以随时尝试切换 .none 吗?与.any? (这是相反的)。
    【解决方案3】:

    我对此的看法是制定规则以消除无用的词。
    比如去掉冠词、动词、代词等无用的东西。
    您可以先标记字符串,然后执行修剪。
    之后,您可以创建规则以进一步提取重要标记。

    供参考:

    Tokenizer

    Tokenizing a String

    【讨论】:

    • 感谢您的参考!!我希望找到一个可以从常见搜索中消除所有代词和副词的宝石,但我想这将是我要做的:) :)
    猜你喜欢
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 2018-11-07
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多