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

时间:2015-10-30 14:14:06

标签: javascript php html laravel

如何从输入中获取关键字,例如(textareatext,...),然后将该关键字存储在array的{​​{1}}中单词的长度大于或等于7让我向您展示一个示例我在HTML中有以下段落:

string

我在<html> ... <body> <textarea id="keyword" cols="10" rows="20" placeholder="write content here"></textarea> </body> </html> 填写以下内容:
   Laravel附带的Eloquent ORM提供了一个漂亮,简单的ActiveRecord实现,用于处理您的数据库。
然后我想将关键字存储在JavaScript中,例如:

textarea

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您尝试创建的功能是不可能的,因为如果您查看任何信息性的句子,那么您将找到数十亿这样的关键字。 Javascript或PHP语言不知道这些是否是特殊词,它只是我们将这些视为关键词的人。因此,对于此问题,您可能希望自己定义数组。

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

答案 1 :(得分:0)

我会尝试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' ]

基本上,只有简单出现