gpt4 book ai didi

在模糊@username 上查找用户匹配的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:03:00 25 4
gpt4 key购买 nike

我确定我在 Meta 或 SO 上看到了一篇帖子,其中 Jeff 发布了升级后的算法,可以更好地匹配评论,例如当有人输入评论时:

@Tom did you see

它将匹配用户名“Tom”。如果有特殊字符,比如我的用户名是“T0m”,有人输入 @Tom,它仍然匹配。

如果这篇文章确实存在,有人知道这篇文章的链接吗?如果我没记错的话,那是他分享的代码,对我很有用!

否则,给定参与讨论的用户名列表:

users[0] = "Tom"
users[1] = "Peanut"
users[2] = "Ashley"
users[3] = "Jon"
users[4] = "AARÓN"

并且您得到了 @Aaron@Aron 作为输入,选择列表中引用的正确用户的最佳方法是什么?

通用算法会很好,但我正在做的网站是 ASP.net c#,所以如果有该语言的示例,那就太棒了。这是我目前所拥有的,它非常适合完全匹配(全部小写):

// Find comment references
if (Search.Type != Alerts.SectionType.error)
{
// A list of all lower case usernames refered to in this thread
string[] References = Alerts.CommonFunctions.extractReferences(Comment);

// Only proceed if any references are found
if (References.Count() > 0)
{
// Extract all usernames involved in this comment discussion
UserBasic[] UsernamesInThread = getAllUsernamesInThread(Anchor);

// Loop each reference
foreach (string r in References)
{
// Try to find a match
foreach (UserBasic u in UsernamesInThread)
{
// Exact match found
if (r == u.Username)
{
// Check it's not original author (we can then ignore as alert already issued)
if (u.UserID != Search.OriginalAuthorID)
{
Alerts.CommonFunctions.createAlert(u.UserID, Settings.CommentReplyAlertID, Search.URL, Search.Title);
}
break;
}
}
}
}
}

最佳答案

Peter Norvig 写了一个漂亮的例子 very small spelling corrector这里:

它列出了两个 C# 实现。

对于您的特定问题(候选项集非常小),您可能希望找到最小的 edit distance在目标词和所有候选词之间。

关于在模糊@username 上查找用户匹配的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7464676/

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