首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从输入文本创建标记云的最佳方法

从输入文本创建标记云的最佳方法
EN

Stack Overflow用户
提问于 2011-07-18 03:40:17
回答 2查看 2K关注 0票数 1

我想知道从输入文本生成标记云的最佳方法是什么(当用户输入标记云时)。例如,如果用户键入包含关键词“科幻、技术、效果”的故事文本,则标记云将根据每个故事的频率按相关性排序形成标记云。标签云将按降序显示,使用相同的字体大小,这不是显示算法,而是我应该实现的搜索算法。我使用mysql和php。我应该坚持MATCH...AGAINST条款吗?我应该实现一个标签表吗?

更详细的我有一个mysql表,其中包含了很多故事。当用户键入他/她自己的一个时,我想显示一个标签云,其中包含从输入文本中提取的最频繁的单词,发生在保存在我的db上的这组故事上。标记云将仅用于向用户显示他/她在自己的故事中输入的单词的相关性,这取决于用户在所有用户输入的所有故事中出现的频率。

EN

回答 2

Stack Overflow用户

发布于 2011-07-18 04:00:34

我认为你需要做的第一件事是更清楚地定义标签系统的目的。您想要简单地基于文本中最频繁出现的单词来构建标记吗?这给我的印象是,在设计时考虑到了搜索排名。

...Or您希望您的内容组织得更好吗?标记云是提供更好的用户体验的一种方式,并在内容片段之间创建更清晰的关系(即这两种内容都被标记为科幻,因此在科幻类别中显示它们)。

如果是前者,您可能不需要做任何事情,只需:

http://www.english-grammar-revolution.com/list-of-conjunctions.html

  • 通过分隔符(如单个空格explode(' ', $content);

  • )爆炸文本,它有一个单词列表(可能在配置文件中或脚本本身内),这些单词将频繁发生,您希望将这些单词从标记(或者,这个,等等)中排除出来。您可以直接从这样的页面中删除它们:http://www.esldesk.com/vocabulary/pronouns

然后,您只需确定一个单词必须出现多少次(百分比或数字),并将这些标记存储在一个显示标记和内容之间的连接的表中。

要实现“用户正在键入”部分,只需使用一些jQuery的ajax功能,就可以不断调用构建标记列表的脚本(即按下键)。

另一个选项(更好的用户体验)将包含许多相同的元素,但您必须考虑更多。有些事情我会考虑:

  • 您想限制在特定的标记上(也许您不想只允许任何人创建新的标记)?如果您想要更倾向于建议现有的标记(可能是接近的)而不是建议新的标记,那么
  • 将如何处理同义词
  • ,如果您想要支持多语言
  • >

一旦您完全定义了逻辑和用户体验,您就可以回到搜索算法。比赛和对决是很好的选择,但你可能会发现,一个简单的喜欢会为你做到这一点。

祝你好运=

票数 0
EN

Stack Overflow用户

发布于 2011-07-18 12:36:50

如果您希望在用户键入标记云时生成标记云,则可以通过两种方式进行。

  • 直接从输入文本
  • 中更新标记云,将输入文本发送到后端(实时使用ajax/comet),后者保存、计算单词频率并返回生成云的数据。

我会选择前者使用jQuery插件,比如- http://plugins.jquery.com/plugin-tags/tag-cloud

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6728429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档