-1

Hashtags 有时会结合两个或多个单词,例如:

content marketing => #contentmarketing

如果我为一篇文章分配了一堆主题标签,并且该词在那篇文章中,即content marketing. 如何获取该主题标签并检测构成该主题标签的单词?

如果主题标签是一个单词,这很简单:只需在文章中查找该单词即可。但是,如果哈希标签是两个或更多单词怎么办?我可以简单地将主题标签拆分为所有可能的索引,并检查产生的两个词是否在文章中。

所以对于#contentmarketing,我会检查这些词:

  • 内容营销
  • 内容营销
  • 内容营销
  • ...
  • 内容营销<=这就是答案!
  • ...

但是,如果主题标签中有三个或更多单词,这将失败,除非我递归地拆分它,但这似乎非常不雅。

同样,这是假设散列标签中的单词在文章中。

4

2 回答 2

3

您可以在每个字符之间使用带有可选空格的正则表达式来执行此操作:

your_article =~ /#{hashtag.chars.to_a.join(' ?')}/
于 2013-11-11T00:45:06.367 回答
0

根据主题标签的要求,我可以想到两种可能的解决方案:

  1. 假设主题标签必须由单词组成,并且不能是诸如“#abfgtest”之类的非单词:

    Do the test similar to your answer above but only test the first part of the string. If the test fails then add another character and try again until you have a word. Then repeat this process on the remaining string until you have found each word. So using your example it would first test:
    
    - c
    - co
    - ...
    - content <- Found a word, start over with rest 
    - m
    - ma
    - ...
    - marketing <- Found a word, no more string so exit
    
  2. 如果你可以有垃圾,那么你将需要做与选项 1 相同的事情。还有一个额外的步骤。每当您到达字符串的末尾而没有找到单词时,请返回开头 + 1。使用该#abfgtest示例,首先您将在“abfgtest”上运行上述函数,然后是“bfgtest”,然后是“fgtest”等。

于 2013-11-11T01:00:13.253 回答