Java 查找YouTube视频中提到的单词的单词搜索

Java 查找YouTube视频中提到的单词的单词搜索,java,list,intellij-idea,set,youtube-data-api,Java,List,Intellij Idea,Set,Youtube Data Api,我正在尝试为视频列表实现一个趋势主题分析器。这相当于在标题和描述中索引单词用法。同样要注意和提及的是,我想要它在所有标点符号的位置 包含在“单词”中的“闪烁”与“闪烁”不同,它统计一个单词在标题和描述中多次出现的次数 我正在开发的应用程序基本上基于一个命令行应用程序,该应用程序可以检测Intelli j java上的YouTube趋势主题 我有一些代码是我创建的,但不确定如何为我的应用程序实现或执行这些代码 以下是代码: SomeCollection words (this could be a

我正在尝试为视频列表实现一个趋势主题分析器。这相当于在标题和描述中索引单词用法。同样要注意和提及的是,我想要它在所有标点符号的位置 包含在“单词”中的“闪烁”与“闪烁”不同,它统计一个单词在标题和描述中多次出现的次数

我正在开发的应用程序基本上基于一个命令行应用程序,该应用程序可以检测Intelli j java上的YouTube趋势主题

我有一些代码是我创建的,但不确定如何为我的应用程序实现或执行这些代码

以下是代码:

SomeCollection words (this could be a set, list, map, etc)
for each video
 for each word in video(title and description)
 if (word is in words)
 increment count for word in words
 else
 add word to words and set count to 1
 end
 associate video with word
 end
end

我知道您需要集合框架中的类,如列表、映射和集合来实现这样的算法,但我不太确定如何实现。我能在这方面得到一些帮助吗?

首先,问题的标题与内容有所不同,单词搜索与查找趋势主题有所不同 如果是趋势主题分析器

我得到的是,你需要实现某种搜索引擎,但没有正向索引

一般的观点是,首先将标题和描述连接起来,并拆分这个巨大的字符串(以获取单词),然后对每个视频执行此操作,然后删除所有的停止词(如A、the、was等),你可以很容易地找到所有的停止词列表,然后你必须为每个词找到根词,这是你将要存储在map(或list或任何东西,尽管map是最好的选择之一)-这一步是通过词干柠檬化来实现的,您可以找到许多库来自动化这些任务。这是最初的文字处理,现在达到了目标

您将在初始字处理后获得的所有字(根)列成一个列表

Now you should be having:
                     -> dictionary : (all the root words of your dataset) 
                        with probable datatype of list
                     -> freq_map : a map that maps word to its total 
                        frequency in dictionary.



  Iterate through all words in word dictionary
  if word not in freq_map:
                           add it in freq_map
                           add it in nested map, map_f ( show below )
                           if current video_id not in map_f:
                                                            add it in in map_f with 
                                                            freq in it
                           else:
                                 increment frequency

  else:
                           increment its frequency in freq_map
                           if current video_id not in map_f:
                                                            add it in in map_f with 
                                                            freq in it
                           else:
                                 increment frequency
完成所有这些操作后,您将得到反向索引,如下图所示:

{ 
  'word1' : {
              {'video1_id':word_freq},{'video2_id':word_freq} 
            } ,
  'word2' : { 
              {'video1_id':word_freq},{'video2_id':word_freq}
            },
  .
  .
 }
您将在csv或JSON文件中存储map_f(解析JSON更容易),或者您可以使用 Java中的任何对象序列化方法

Scenarios : 
        your trending topic has to be one word topic -> above approach suffice.
        topic could be multi word -> If you are not concerned about high accuracy then 
        still above method suffice.
如果这是你脑海中的想法,那么请继续阅读本网站:

希望能有帮助

若您想保持单词在标题和描述中的原样,只需不使用根查找步骤。 如果您想将单词在标题和描述中的出现分开,那么只需在地图中嵌套的第三级中使用如下内容:

 'video1_id':{0:word_freq, 1:word_freq}
  0 and 1 being the flags for location of word in either title or description.

SomeCollection单词
这是固定的单词列表吗?或者在程序执行期间它会改变吗?