[英]Finding out keywords in javascript from a paragraph of text
如何从JavaScript中的输入(例如textarea
, text
,...)中获取关键字,然后将该关键字存储在单词长度大于或等于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.