从一段文本中找出javascript中的关键字


Finding out keywords in javascript from a paragraph of text

我如何从JavaScript中的输入中提取关键字,例如(textareatext,…),然后将该关键字存储在stringarray中,使其单词长度大于或等于7让我给你看一个例子,我在HTML中有以下段落:

<html>
 ...
   <body>
          <textarea id="keyword" cols="10" rows="20" placeholder="write content here"></textarea>
   </body>
 </html>

并且我在textarea中填充以下内容:
Laravel中包含的Eloquent ORM为使用数据库提供了一个漂亮、简单的ActiveRecord实现
然后我想把关键词存储在JavaScript中,例如:

<javascript>
       var keywords = ['Eloquent', 'included', 'provides', 'Laravel','beautiful', 'ActiveRecord', 'implementation', 'working', 'database'];
</javascript>

我该怎么做?

您试图创建的函数是不可能的,因为如果您查找任何信息丰富的句子,那么您将发现数十亿个这样的关键字。Javascript或PHP语言不知道这些是否是特殊的单词,只有我们人类将其视为关键词。因此,对于这个问题,您可能需要自己定义数组。

*有一种方法。你可以检查段落中的每个单词,如果第一个字母是大写字母,那么你可能想存储它(因为你的大多数关键词都以大写字母开头)。计算出这个逻辑的代码。

我会尝试POSTagging。

这可能会为你指明正确的方向https://github.com/dariusk/pos-js

我要做的是,确定所有这些的词性,然后浏览列表,将哪些是名词和形容词添加到数组中。

这不会是完美的,但这将是一个开始。下面是的代码示例

var pos = require('pos');
var words = new pos.Lexer().lex('The Eloquent ORM included with Laravel provides a beautiful, simple ActiveRecord implementation for working with your database');
var tagger = new pos.Tagger();
var taggedWords = tagger.tag(words);
var output=[];
for (i in taggedWords) {
    var taggedWord = taggedWords[i];
    var word = taggedWord[0];
    var tag = taggedWord[1];
    //check if tag is a noun or adjective
    if(tag.indexOf('NN')==0 || tag.indexOf('JJ')==0)
       output.push(word)
}
console.log(output)

我的输出是

[ 'Eloquent',
'ORM',
'Laravel',
'beautiful',
'simple',
'ActiveRecord',
'implementation',
'database' ]

基本上,只有简单的出现太