Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java快速字符串匹配(将文本与类别关联)_Java_String_String Matching - Fatal编程技术网

Java快速字符串匹配(将文本与类别关联)

Java快速字符串匹配(将文本与类别关联),java,string,string-matching,Java,String,String Matching,假设我有一个类似的帖子 标题:“网络:2011年的搜索引擎优化” 描述:“2011年关于网络搜索引擎优化的会议” 此外,我还有一个类别列表,其中包含相关关键字: “IT”(cat)->“网页设计”、“搜索引擎优化”、“开发”、“网页开发”(关键词) 我有多个类别(it、艺术、医学、文学、机械等) 我需要使用java自动升级带有这些类别和关键字的帖子(一种标签),以改进未来的搜索 上面的例子:应该匹配“seo”和“web”,所以主字段应该用“IT”填充,子字段应该用“seo”或“web”填

假设我有一个类似的帖子

  • 标题:“网络:2011年的搜索引擎优化”
  • 描述:“2011年关于网络搜索引擎优化的会议”
此外,我还有一个类别列表,其中包含相关关键字:

  • “IT”(cat)->“网页设计”、“搜索引擎优化”、“开发”、“网页开发”(关键词)
我有多个类别(it、艺术、医学、文学、机械等)

我需要使用java自动升级带有这些类别和关键字的帖子(一种标签),以改进未来的搜索

上面的例子:应该匹配“seo”和“web”,所以主字段应该用“IT”填充,子字段应该用“seo”或“web”填充(或者两者都可以,这也不错)

我的问题是,我能想出的唯一解决办法是使用暴力(测试所有单词,当其中一个匹配时,你有类别和与之相关联的关键字列表),这会减慢我的表现

有什么方法可以让我用更好的方式搜索吗?我还可以修改我的分类->关键字结构来做一些更好的事情(我仍然不知道如何…)

提前谢谢大家

编辑:正如埃米特在评论中所说,准确性并不重要。我不需要100%精确地标记,因为我知道我可以根据字符串的原始匹配获得真实的正确性


另外,我考虑的逻辑是:查看帖子标题/描述,搜索任何匹配的关键词,用类别标记,搜索更多的关键词到这个类别中,保存3到5个匹配的关键词,你可能想尝试不同的方法,使用

算法描述:
首先,创建一个学习样本[您确实知道如何标记它们的文档,您可以手动标记样本并将其作为算法的输入]。然后,使用
k
bag of words为这些示例创建[您需要通过对质量进行基准测试来确定哪个
k
是最佳的,我将在后面解释]

每个单词都是一个“特征”,接下来,对于每个新文档,您将尝试从学习样本中找出哪一个文档是最常见的[即,在您的单词包中有最多的“单词”),新文档将被标记为其最近的邻居

如何确定质量基准?

您可以通过从学习样本中提取10%的文档来检查质量,并且只学习剩余的90%。完成学习后,您可以通过检查剩余10%的准确度来评估算法的准确度。请注意,您可能需要这样做几次,才能找到上面提到的最佳k[字包大小]。

您有学习的样本吗?[即,您知道如何标记的一组文档]?此外,您是否对标记的准确性感兴趣?或者你能假设标记词总是在主题/描述中吗?这是最大的问题:不:(我只有原始文档,没有任何示例上下文:(准确性并不重要,这就是为什么我决定将2-3个二级关键字关联到每个帖子。你需要在文本中逐字查找一个类别,然后将该单词与找到的类别对应的一组单词关联吗?或多或少:我将首先搜索一个关键字,因为一般类别更难发现(我无法关联)“web”到“it”基于原始字符串匹配…我应该首先搜索与web匹配的关键字,或类似的关键字,然后提取类别)对于我拥有的每个包,k是否应该相等?我拥有的所有关键字都是由一些SEO专家或其他人提供的,并且列表非常不同(对于某些类别,我有大约20个关键词,而其他类别只有2-3个)另外:我知道学习样本在这种方法中是最基本的,但是你认为有可能实现混合解决方案吗?我想我知道答案,因为没有学习基础,ml是不可能的,对吧?你必须有一个学习样本。但是,这种方法不需要决定哪些单词是关键词,它们将是由BoW选择。我认为它值得一试,几个月前我用它来发现推特的积极性时效果不错。我会尝试一下,我必须非常仔细地计划,这是一个阻碍问题(没有分类就无法上线)但我也不能在这上面花太多时间…我会把这个问题留给其他建议,但我正在尝试你的建议(如果这是唯一的一个,我会在2-3天内接受,保证!)根据您的回答,我发现这是完美的,使用贝叶斯分类器结合单词袋方法,它工作顺利,我可以对匹配进行评级,并以高准确率添加正确的值!感谢您的想法amit!