繁体   English   中英

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

[英]Finding out keywords in javascript from a paragraph of text

如何从JavaScript中的输入(例如textareatext ,...)中获取关键字,然后将该关键字存储在单词长度大于或等于7的string array中,让我为您展示一个示例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' ]

基本上也只有简单的出现

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM