gpt4 book ai didi

javascript - 使用javascript从字符串自动生成标签

转载 作者:行者123 更新时间:2023-11-29 09:56:03 26 4
gpt4 key购买 nike

我需要为文本字符串自动生成标签。在这种情况下,我将使用这个字符串:

var text = 'This text talks about loyalty in the Royal Family with Príncipe Charles';

我目前的实现,为长度超过 6 个字符的单词生成标签,并且工作正常。

words = (text).replace(/[^a-zA-Z\s]/g,function(str){return '';});
words = words.match(/\w{6,}/g);
console.log(words);

这将返回:

["loyalty","Family","Prince","Charles"]

问题是有时候,标签应该是一组特定的词。我需要的结果是:

["loyalty","Royal Family","Príncipe Charles"]

这意味着,替换/匹配代码应该测试:

  1. 长度为 6 个字符(或更多)的单词;和/或
  2. 如果一组单词以大写字母开头,则应将这些单词连接到同一个数组元素中。如果某些单词的长度少于 6 个字符并不重要 - 但至少其中一个必须为 6 个以上,例如:“Stop at The UK Guardián in London”应该返回 ["The UK Guardián", "伦敦”]

我显然在第二个要求上遇到了麻烦。有任何想法吗?谢谢!

最佳答案

var text = 'This text talks about loyalty in the Royal Family with Prince Charles. Stop at The UK Guardian in London';

text.match(/(([A-Z]\w*\s*){2,})|(\w{6,})/g)

会回来

["loyalty", "Royal Family ", "Prince Charles", "The UK Guardian ", "London"]

为了满足第二个要求,最好对找到的匹配项运行另一个正则表达式:

var text = 'This is a Short Set Of Words about the Royal Family'

matches = text.match(/(([A-Z]\w*\s*){2,})|(\w{6,})/g)
matches.filter(function(m) {
return m.match(/\w{6,}/)
});

关于javascript - 使用javascript从字符串自动生成标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11453584/

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