2015-10-30 6 views
1

Давайте рассмотрим, что у меня есть строка & хочу извлечь необычные ключевые слова для SEO. $text = "This is some text. This is some text. Vending Machines are great.";Извлечение ключевых слов из строки: Javascript

& будут определять множество общих слов, чтобы игнорировать ключевые слова в извлеченной списке как $commonWords = ['i','a','about','an','and','are','as','at','be','by','com','de','en','for','from','how','in','is','it','la','of','on','or','that','the','this','to','was','what','when','where','who','will','with','und','the','www'];

Ожидаемый результат: Result=[some,text,machines,vending]

бы очень признателен, если Может ли один помочь нам написать общую логику или процедуру для извлечение ключевых слов из строки?

+1

удалить знаки препинания ([ '.Надеть()'] (https://developer.mozilla.org/en-US/docs/Web/ JavaScript/Reference/Global_Objects/String/replace)), разделите строку ([.split() '] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split)), фильтруйте массив для слов, не найденных в массиве '$ commonWords' ([' .filter() '] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter), ['.indexOf()'] (https://developer.mozilla.org/en-US/docs/Web/JavaSc ript/Reference/Global_Objects/Array/indexOf)) – Andreas

ответ

0

Некоторые любят этого

var $commonWords = ['i','a','about','an','and','are','as','at','be','by','com','de','en','for','from','how','in','is','it','la','of','on','or','that','the','this','to','was','what','when','where','who','will','with','und','the','www']; 
var $text = "This is some text. This is some text. Vending Machines are great."; 

// Convert to lowercase 
$text = $text.toLowerCase(); 

// replace unnesessary chars. leave only chars, numbers and space 
$text = $text.replace(/[^\w\d ]/g, ''); 

var result = $text.split(' '); 

// remove $commonWords 
result = result.filter(function (word) { 
    return $commonWords.indexOf(word) === -1; 
}); 

// Unique words 
result = result.unique(); 

console.log(result); 
+0

Нет ничего похожего на 'Array.prototype.unique' в стандарте – Andreas

+0

@Andreas У вас есть право. Вот решение: http://stackoverflow.com/questions/11246758/how-to-get-unique-values-in-an-array или лучше: http://underscorejs.org/#uniq –

+0

@Andreas: Как обрабатывать, если строка содержит специальные символы? –

0
var string = "This is some text. This is some text. Vending Machines are great."; 

var substrings = ['your','words', 'here'], 

var results = array(); 
for (var i = substrings.length - 1; i >= 0; --i) { 
    if (string.indexOf(substrings[i]) != -1) { 
     // str contains substrings[i] 
     array.push(substrings[i]); 
    } 
} 
0
var arrayLength = commonWords.length; 
var words = []; //new array to say the words 
for (var i = 0; i < arrayLength; i++) { 
    if ($text.indexOf(commonWords[i]) > -1){ 
     words.push(commonWords[i]); 
    } 
} 
Смежные вопросы