gpt4 book ai didi

php - 从文本 block 中提取相关标签/关键字

转载 作者:可可西里 更新时间:2023-10-31 23:02:51 27 4
gpt4 key购买 nike

我想要一个特定的实现,这样用户就可以提供如下文本 block :

"Requirements - Working knowledge, on LAMP Environment using Linux, Apache 2, MySQL 5 and PHP 5, - Knowledge of Web 2.0 Standards - Comfortable with JSON - Hands on Experience on working with Frameworks, Zend, OOPs - Cross Browser Javascripting, JQuery etc. - Knowledge of Version Control Software such as sub-version will be preferable."

我想做的是自动选择相关关键字并创建标签/关键字,因此对于上面的一段文字,相关标签应该是:mysql, php, json, jquery, version control, oop, web2. 0、javascript

我怎样才能在 PHP/Javascript 等中完成它?抢先一步真的很有帮助。

最佳答案

一个非常天真的方法是删除常见的stopwords从文本中,给你留下更有意义的词,如“标准”、“JSON”等。但是你仍然会听到很多噪音,所以你可以考虑像 OpenCalais 这样的服务。它可以对您的文本进行相当复杂的分析。

更新:

好的,我之前的回答中的链接指向实现,但您要求的是一个简单的实现:

function stopWords($text, $stopwords) {

// Remove line breaks and spaces from stopwords
$stopwords = array_map(function($x){return trim(strtolower($x));}, $stopwords);

// Replace all non-word chars with comma
$pattern = '/[0-9\W]/';
$text = preg_replace($pattern, ',', $text);

// Create an array from $text
$text_array = explode(",",$text);

// remove whitespace and lowercase words in $text
$text_array = array_map(function($x){return trim(strtolower($x));}, $text_array);

foreach ($text_array as $term) {
if (!in_array($term, $stopwords)) {
$keywords[] = $term;
}
};

return array_filter($keywords);
}

$stopwords = file('stop_words.txt');
$text = "Requirements - Working knowledge, on LAMP Environment using Linux, Apache 2, MySQL 5 and PHP 5, - Knowledge of Web 2.0 Standards - Comfortable with JSON - Hands on Experience on working with Frameworks, Zend, OOPs - Cross Browser Javascripting, JQuery etc. - Knowledge of Version Control Software such as sub-version will be preferable.";

print_r(stopWords($text, $stopwords));

你可以看到这个,以及这个Giststop_word.txt的内容.

在您的示例文本上运行上面的代码会生成以下数组:

Array
(
[0] => requirements
[4] => linux
[6] => apache
[10] => mysql
[13] => php
[25] => json
[28] => frameworks
[30] => zend
[34] => browser
[35] => javascripting
[37] => jquery
[38] => etc
[42] => software
[43] => preferable
)

所以,就像我说的,这有点天真,可以使用更多优化(而且它很慢),但它确实从您的文本中提取了更相关的关键字。您还需要对停用词进行一些微调。捕获像 Web 2.0 这样的术语将非常困难,所以我再次认为您最好使用像 OpenCalais 这样的严肃服务,它可以理解文本并返回实体和引用列表。 DocumentCloud正是依靠这项服务从文档中收集信息。

此外,对于客户端实现,您可以使用 JavaScript 做几乎相同的事情,而且可能更简洁(尽管对于客户端来说可能很慢。)

关于php - 从文本 block 中提取相关标签/关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4828154/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com