我如何从JavaScript中的输入中提取关键字,例如(textarea
,text
,…),然后将该关键字存储在string
的array
中,使其单词长度大于或等于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' ]
基本上,只有简单的出现太