Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript——搜索数千个文本以查找数千个单词的最有效方法?_Javascript_Algorithm_Search_Text - Fatal编程技术网

Javascript——搜索数千个文本以查找数千个单词的最有效方法?

Javascript——搜索数千个文本以查找数千个单词的最有效方法?,javascript,algorithm,search,text,Javascript,Algorithm,Search,Text,语言本身并没有那么重要,但我想我还是坚持使用Javascript 基本上,我每个月都有数千条“评论”,我希望通过在这些评论中搜索10000个单词(每条评论的平均字数是21个单词,考虑到目前为止的所有内容),通过自动化进行一次天真的幸福“评估” 这个公式的工作原理(从快乐指数中借用)是计算文本中每个单词的“快乐”分数(如果在10k列表中找到的话)并取平均值 我会测试一些东西,也许会在这里编辑回结果,但我甚至不知道从哪里开始。看起来数据提升非常繁重(当然每个评论只需要执行一次)——也许它更适合R或S

语言本身并没有那么重要,但我想我还是坚持使用Javascript

基本上,我每个月都有数千条“评论”,我希望通过在这些评论中搜索10000个单词(每条评论的平均字数是21个单词,考虑到目前为止的所有内容),通过自动化进行一次天真的幸福“评估”

这个公式的工作原理(从快乐指数中借用)是计算文本中每个单词的“快乐”分数(如果在10k列表中找到的话)并取平均值

我会测试一些东西,也许会在这里编辑回结果,但我甚至不知道从哪里开始。看起来数据提升非常繁重(当然每个评论只需要执行一次)——也许它更适合R或SQL(可能不适合),但不确定

我相信这个问题有时会被称为“单词袋”或“术语频率饱和”。

我肯定会使用它附带的一套功能,可以让你的生活更轻松,比如文本频率、删除重复项、删除停止词、查找同义词等。,想法是尽可能减少文本的大小来进行情绪分析

在一个类似的项目中,我的方法是:

  • 删除中性词、代词、介词、限定词、名称等
  • 删除重复项
  • 在我进入课文时检查同义词,并从课文的其余部分删除它们
  • 动态地为一个段落创建一个情绪阈值分数,所以一旦达到该分数,我就停止处理该段落,继续处理下一个段落,整个文本也是如此
  • 希望这能奏效

    我肯定会使用它,它附带了一套功能,可以让你的生活更轻松,比如文本频率、删除重复项、删除停止词、查找同义词等,目的是尽可能减少文本的大小,以便进行情感分析

    在一个类似的项目中,我的方法是:

  • 删除中性词、代词、介词、限定词、名称等
  • 删除重复项
  • 在我进入课文时检查同义词,并从课文的其余部分删除它们
  • 动态地为一个段落创建一个情绪阈值分数,所以一旦达到该分数,我就停止处理该段落,继续处理下一个段落,整个文本也是如此

  • 希望这能奏效

    您可以从您的单词中创建一个哈希表,如(缩写):

    然后有一个像这样的字符串并将其拆分为单词

    let str = `I hate love it's just ok`;
    let words = str.split(' ');
    
    然后,您可以迭代这些单词并获得分数:

    let commentScore = 0;
    words.forEach(function(word){
      if(wordRanks[word]){
        commentScore += parseInt(wordRanks[word])
      }
    });
    console.log(commentScore); //should be 10
    

    使用哈希表进行查找在计算上不应该很昂贵。应该可以,尽管您可能需要更好地拆分单词以删除尾随标点符号,因为我的初始代码中love后面有一个逗号,它给出了错误的结果,因为“love”没有哈希表匹配,

    您可以从您的单词中创建一个哈希表,如下所示(缩写):

    然后有一个像这样的字符串并将其拆分为单词

    let str = `I hate love it's just ok`;
    let words = str.split(' ');
    
    然后,您可以迭代这些单词并获得分数:

    let commentScore = 0;
    words.forEach(function(word){
      if(wordRanks[word]){
        commentScore += parseInt(wordRanks[word])
      }
    });
    console.log(commentScore); //should be 10
    

    使用哈希表进行查找在计算上不应该很昂贵。应该可以,尽管您可能需要更好地拆分单词以删除尾随标点符号,因为我的初始代码中love后面有一个逗号,它给出了错误的结果,因为“love”没有哈希表匹配,

    “最有效”取决于一系列因素……是的,通过阅读和学习,快速字符串搜索方法非常复杂。嗯。也许我会在维基百科上介绍一些简单的方法,看看处理时间是否可以接受。“最有效”取决于一系列因素……是的,通过阅读了解到,快速字符串搜索方法非常复杂。嗯。也许我会在维基百科上介绍一些更简单的方法,看看处理时间是否可以接受。谢谢——该网站的指南也很棒。是的,我不是想彻底改造轮子。我会通读一遍。注意,如果你做了类似的事情,如果你删除了同义词或重复词,他们应该添加到分数中,因此如果你从一个段落中删除“笑”一词6次,并且不计算六次迭代次数,那么你很可能会在该特定段落中获得错误分数。NLTK还有一套很好的分析上下文的工具,它非常有用,像“哭”这样的词可能表示悲伤或愤怒,所以上下文很重要。我试图复制方法论快乐指数,只是因为从他们自己的内部测试来看,它看起来很稳健。是的,他们按顺序计算重复或三次。它们不考虑上下文。当然,我不会追求精确性(人类评估可以做到这一点)——更多的是初始通过分数/基本分类。但是,是的,即使是这个“简单”的平均幸福指数模型——在技术上也很难实现,至少现在对我来说是这样。谢谢——这个网站上的指南也很棒。是的,我不是想彻底改造轮子。我会通读一遍。注意,如果你做了类似的事情,如果你删除了同义词或重复词,他们应该添加到分数中,因此如果你从一个段落中删除“笑”一词6次,并且不计算六次迭代次数,那么你很可能会在该特定段落中获得错误分数。NLTK还有一套很好的分析上下文的工具,它非常有用,像“哭”这样的词可能表示悲伤或愤怒,所以上下文很重要。我试图复制方法论快乐指数,只是因为从他们自己的内部测试来看,它看起来很稳健。是的,他们按顺序计算重复或三次。它们不考虑上下文。当然,我不会追求精确性(人类评估可以做到这一点)——更多的是初始通过分数/基本分类。但是是的,即使是这个“简单”的mod