Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.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
“消除”的最佳方法;“噪音”;ASP.NET3.5Web应用程序中的单词?_Asp.net_Seo_Tags_Metadata_Noise - Fatal编程技术网

“消除”的最佳方法;“噪音”;ASP.NET3.5Web应用程序中的单词?

“消除”的最佳方法;“噪音”;ASP.NET3.5Web应用程序中的单词?,asp.net,seo,tags,metadata,noise,Asp.net,Seo,Tags,Metadata,Noise,我想把一些关键字元标签放到一个页面上,具体取决于所显示的文章 假设您加载了blabla.com/article.aspx?id=2的页面 这篇id等于2的文章题为“商业管理中故意错误的智慧” 因此,我想包括如下meta标记: <META name="keywords" content="wisdom, deliberate, mistakes, business, management" /> 如果你想过滤“噪音”或“停止”单词,我建议你研究一下regluar表达式,它们对这类东西

我想把一些关键字元标签放到一个页面上,具体取决于所显示的文章

假设您加载了blabla.com/article.aspx?id=2的页面 这篇id等于2的文章题为“商业管理中故意错误的智慧”

因此,我想包括如下meta标记:

<META name="keywords" content="wisdom, deliberate, mistakes, business, management" />
如果你想过滤“噪音”或“停止”单词,我建议你研究一下regluar表达式,它们对这类东西的反应非常快。至于实现,我可能会将noise/stop字存储在一个表中,然后使用这些字来构建您的正则表达式。您应该能够在服务器上缓存正则表达式,这样性能影响应该最小

下面是一个基于您上面提供的单词的示例。有一个很好的在线正则表达式测试器,位于:


这些词被称为“停止词”——这将帮助你在谷歌上搜索一些实现想法

我的感觉是这样做没有多大价值——标题已经被认为对搜索索引非常重要。此外,“智慧”真的与文章相关吗

我认为最好的关键词是人工选择的,比如标签,并且最多保留1到3个描述内容的特定关键词


但要回答你的问题——你认为会有多少人?如果我要这样做,我会将它们保存在数据库中(如果我已经在使用数据库),如果它们影响性能,则将它们预加载到内存中(它可以由所有会话共享)。

您可能会看到我的帖子。在那里,我使用英语、法语、西班牙语和德语中的噪音词(或停止词)。对于每一种语言,我都有三个数组:标准噪音词、最常见的动词和第三个及其变化。通过这种方式,您可以将噪声词与动词和变位符,甚至是不规则动词一起删除(在英语以外的其他语言中,变位符比-ed、-ing和-s终止符复杂得多)

提供的示例VB项目代码为每个asp.net页面(.aspx)动态创建元标题、元关键字和元描述,无需用户干预,其cpu命中率仅在编译时(第一次请求)。一旦页面被编译,它们的标记(标题、关键字、描述)就不会占用任何cpu空间。这是因为,由于VirtualPathProviders(文件系统在任何时候都不会被修改),在实际编译文件之前,Meta是动态计算的并被推送到文件中的

我将它们存储在编码数组中,这些数组经过排序,以便能够使用二进制搜索算法


我希望这能对你有所帮助。问候。

@Rob的回答为我指明了一个正确的方向,可以完成类似的任务。这是我最后得到的工作函数。文件
noiseENU.txt
按原样从
\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\FTData
复制

    Public Function StripNoiseWords(ByVal s As String) As String
        Dim NoiseWords As String = ReadFile("/Standard/Core/Config/noiseENU.txt").Trim
        Dim NoiseWordsRegex As String = Regex.Replace(NoiseWords, "\s+", "|") ' about|after|all|also etc.
        NoiseWordsRegex = String.Format("\s?\b(?:{0})\b\s?", NoiseWordsRegex)
        Dim Result As String = Regex.Replace(s, NoiseWordsRegex, " ", RegexOptions.IgnoreCase) ' replace each noise word with a space
        Result = Regex.Replace(Result, "\s+", " ") ' eliminate any multiple spaces
        Return Result
    End Function
这是解决办法

  • 将变量$NOISE_单词定义为xs:string*
  • {
  • (:\b是单词边界。它捕捉开头
  • 字符串的结尾和中间与整个单词匹配。:)
  • ('\b\b'、'\bof\b'、'\ban\b'、'\bor\b'
  • '\bis\b'、'\bon\b'、'\bbut\b'、'\ba\b')
  • }
  • 定义函数删除噪声字($string,$noise)
  • {
  • (:这是一个递归函数。:)
  • 如果(不是(空($noise)),则
  • 删除杂音字(
  • 替换($string,$noise[1],“”,'i')
  • (:这将沿着后面的噪声字传递
  • 刚刚评估的那个。:)
  • $noise[position()>1]
  • )
  • else规范化空间($string)
  • }
  • let$source-string1:=“李尔王的悲剧”
  • let$source-string2:=“李尔王的悲剧”
  • 让$source-string3:=
  • “李尔王的悲剧”
  • 让$source-string4:=“的
  • (:如果所有噪声字
  • 如上文第4条所述:
  • 让$final:=
  • 删除噪声字($source-string1,$noise\u字)
  • 返回$final
  • 浏览[连结文字][1]


    [1] :有关更多详细信息

    +1与我想说的差不多,但我觉得这些天来meta标签的价值充其量是值得怀疑的。是的,我考虑过标签。。。但是客户不喜欢人工输入标签,他们希望自动添加“标签”。第一步就是标题,然后他们想要一些非常奇怪的东西,比如阅读文章的主体,然后决定哪些是关键词。听起来很疯狂,而且非常难=P,但是人类标记不是一个选项=(所以你们都同意将“停止词”存储在数据库中而不是其他任何地方的想法?在回答你们关于有多少“停止词”的问题时。我只是想使用与SQL Server相同的方法(我将编辑这篇文章,以包含SQLServer2005FTS文件noiseENU.txt的内容)谢谢!我将看看你的帖子。
        \b(?:about|1|after|2|all|also|3|an|4|and|5|another|6|any|7|are|8
    |as|9|at|0|be|$|because|been|before|being|between|both|but|by|came|can|come|
    could|did|do|does|each|else|for|from|get|got|has|had|he|have|her|here|him|
    himself|his|how|if|in|into|is|it|its|just|like|make|many|me|might|more|most|
    much|must|my|never|no|now|of|on|only|or|other|our|out|over|re|said|same|see|
    should|since|so|some|still|such|take|than|that|the|their|them|then|there|these|
    they|this|those|through|to|too|under|up|use|very|want|was|way|we|well|
    were|what|when|where|which|while|who|will|with|would|you|your)\b
    
        Public Function StripNoiseWords(ByVal s As String) As String
            Dim NoiseWords As String = ReadFile("/Standard/Core/Config/noiseENU.txt").Trim
            Dim NoiseWordsRegex As String = Regex.Replace(NoiseWords, "\s+", "|") ' about|after|all|also etc.
            NoiseWordsRegex = String.Format("\s?\b(?:{0})\b\s?", NoiseWordsRegex)
            Dim Result As String = Regex.Replace(s, NoiseWordsRegex, " ", RegexOptions.IgnoreCase) ' replace each noise word with a space
            Result = Regex.Replace(Result, "\s+", " ") ' eliminate any multiple spaces
            Return Result
        End Function