根据字符集对单词进行聚类

2024-01-09

假设有一个单词集,我想根据它们的字符包(多重集)对它们进行聚类。例如

{茶、吃、阿爸、阿阿、你好}

将被聚类成

{{茶,吃},{abba,aabb},{你好}}。

abba and aabb聚集在一起是因为它们具有相同的字符包,即两个a和两个b.

为了提高效率,我能想到的一个天真的方法是将每个单词转换为 char-cnt 系列,例如,abba and aabb都将转换为a2b2,茶/吃将转换为a1e1t1。这样我就可以建立一本字典并用相同的键对单词进行分组。

这里有两个问题:首先,我必须对字符进行排序以构建密钥;其次,字符串键看起来很别扭,而且性能不如char/int键。

有没有更有效的方法来解决问题?


为了检测字谜,您可以使用基于素数乘积的哈希方案A->2, B->3, C->5等等将给出“abba”==“aabb”==36(但不同的字母到素数映射会更好) 看我的回答here https://stackoverflow.com/a/14739948/905902.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据字符集对单词进行聚类 的相关文章

  • 为无向无权图实现推重标签算法 s-t 最小割边

    我正在寻找一个好的解决方案来在无向和未加权图中找到 s t 最小切割边 我想使用推送重新标记算法 但我不确定如何实现它以在无向和未加权图上找到最小割 在每对顶点之间有两条反向边 并在所有边上赋予相同的权重 并应用推送重新标记算法 我可以用这
  • 如何在 dijkstra 算法中以 O(log n ) 时间更新优先级队列中的键?

    过去一周我一直在研究 dijkstra 算法 我在 java 中有正确的运行代码 它使用数组来计算标准 findMin 函数 该函数为您提供距离最小的顶点 显然它是 O n 现在我希望使用优先级队列 最小堆 来实现它 我的思考过程是 whi
  • 如何设置K-means openCV c++的初始中心

    我正在尝试使用 OpenCv 和 Kmeans 对图像进行分割 我刚刚实现的代码如下 include opencv2 objdetect objdetect hpp include opencv2 highgui highgui hpp i
  • 如何动态查找连接组件

    使用不相交集数据结构可以很容易地得到图的连通分量 而且 它只是支持增量连接组件 http www boost org doc libs 1 46 1 libs graph doc incremental components html 然而
  • 哪种数据聚类算法适合检测时间序列事件中未知数量的聚类?

    这是我的场景 考虑在不同地点和时间发生的一组事件 例如 考虑有人在高空记录暴风雨期间城市中的雷击 就我的目的而言 闪电是瞬时的 只能击中某些位置 例如高层建筑 还可以想象每次雷击都有一个唯一的 ID 以便以后可以参考该雷击 这个城市大约有1
  • 如何从二叉搜索树中均匀随机地返回节点?

    给定一个 BST 可能平衡也可能不平衡 如何能够均匀地随机返回 任何 节点 一个限制是您不能使用外部索引数据结构 您必须以每个节点都有平等被访问的机会的方式遍历树 这个问题让我困惑了好一阵子 如果我们确实可以使用外部哈希表 指针 我们可以对
  • 使到 n 个点的集合的欧氏距离之和最小的点

    我有一组点W x1 y1 x2 y2 xn yn 在 2D 平面上 你能找到一种算法 将这些点作为输入并返回一个点 x y 在 2D 平面上 距以下点的距离之和最小W 换句话说 如果 di Euclidean distance x y xi
  • Python 给定 k 个分区的整数分区

    我正在尝试寻找或开发Python 的整数分区代码 仅供参考 整数分区将给定整数 n 表示为小于 n 的整数之和 例如 整数5可以表示为4 1 3 2 3 1 1 2 2 1 2 1 1 1 1 1 1 1 1 我为此找到了许多解决方案 ht
  • 在 Java 中实现排列算法的技巧

    作为学校项目的一部分 我需要编写一个函数 该函数将接受整数 N 并返回数组 0 1 N 1 的每个排列的二维数组 该声明看起来像 public static int permutations int N 该算法描述于http www usn
  • 从日志文件中获取前 100 个 URL

    我的一位朋友在接受采访时被问到以下问题 谁能告诉我如何解决它 我们有一个相当大的日志文件 大约 5GB 日志文件的每一行都包含一个用户在我们网站上访问过的 URL 我们想要找出用户访问最多的 100 个 URL 怎么做 如果我们有超过 10
  • 缩短文本并仅保留重要句子

    德国网站 nandoo net 提供了缩短新闻文章的可能性 如果使用滑块更改百分比值 文本会发生变化并且某些句子会被遗漏 您可以在这里看到它的实际效果 http www nandoo net read article 299925 http
  • 字符串排序真的是 O(n^2logn) 吗? [复制]

    这个问题在这里已经有答案了 我读了以下内容 排序需要 O NlogN 那么它怎么是 O N 2logN 我们在这里想念的是 两个字符串的比较不是 O 1 在最坏的情况下 需要 在 所以最终的复杂度是O N 2logN 它是否正确 我一直认为
  • 如何在给定目标索引数组的情况下对数组进行就地排序?

    你如何对给定的数组进行排序arr in place给定目标索引数组ind 例如 var arr A B C D E F var ind 4 0 5 2 1 3 rearrange arr ind console log arr gt B E
  • 在 O(n) 时间内找到 n x n 矩阵中的局部最小值

    所以 这不是我的家庭作业问题 而是取自 coursera 算法和数据结构课程的未评分作业 现已完成 You are given an n by n grid of distinct numbers A number is a local m
  • 删除队列中的最后一个元素

    我需要删除队列的最后一个元素 我唯一可以使用的操作是 Peek 获取第一个元素而不删除它 Enqueue element 向队列末尾插入一个元素 Dequeue 删除第一个元素 IsEmpty true 或 false 队列是否为空 而且我
  • 如何将一组重叠范围划分为不重叠范围?

    假设您有一组范围 0 100 一 0 75 b 95 150 c 120 130 d 显然 这些范围在某些点上重叠 您将如何剖析这些范围以生成不重叠范围的列表 同时保留与其原始范围相关的信息 在本例中为范围后面的字母 例如 运行算法后的上述
  • 寻找将集合映射到整数的双射函数

    对于任意两个序列 a b 其中 a a1 a2 an 且 b b1 b2 bn 0a b具有相同的元素 而不关心它们的顺序 例如 如果 a 1 1 2 3 b 2 1 3 1 c 3 2 1 3 则 f a f b f a f b 我知道有
  • C 埃及分数

    古埃及人仅使用以下形式的分数1 n因此任何其他分数都必须表示为这些单位分数的总和 而且 所有单位分数都是不同的 在C或Java中使任何分数成为埃及分数 总和越少越好 的好方法是什么 可以使用什么算法 分支定界 a 例如 3 4 1 2 1
  • 使用并集查找(又名不相交集)检测图是否是二分图

    我正在 Spoj 上做一个问题 基本上可以简化为检测图是否是二分图 我正在尝试使用 dfs 为图表着色 但它太慢了 有人评论这个 没有 bfs 没有 dfs 没有二部图 简单的并查集就可以做到 确实速度很快 提示 1 偶数长度的环不会影响两
  • C# 中的 strstr() 等效项

    我有两个byte 我想找到第二个的第一次出现byte 在第一个byte 或其中的一个范围 我不想使用字符串来提高效率 翻译第一个byte to a string会效率低下 基本上我相信就是这样strstr 在 C 中做 最好的方法是什么 这

随机推荐

  • Connect 会话中间件签名 cookie 如何工作?

    我想了解 connect sid cookie 在 Connect Node js 框架中如何工作 我注意到它们的格式如下 s hash signature 我不明白当哈希足以用于从内存存储或 Redis 存储访问会话数据时如何使用签名 另
  • Azure 密钥保管库:访问被拒绝

    我有以下代码用于从 Azure 密钥保管库获取机密 public static async Task
  • 与数据库无关的应用程序的数据库设计

    我必须考虑什么在数据库设计中对于一个新的应用程序来说 哪些应该能够支持最常见的关系数据库系统 SQL Server MySQL Oracle PostgreSQL 值得付出努力吗 有哪些陷阱 简而言之 答案是坚持标准或接近标准实现的功能 更
  • 缓存过期控制与上次修改

    在阿帕奇的mod expires模块 有Expires具有两个基准时间段的指令 access and 修改 ExpiresByType text html access plus 30 days 可以理解 这意味着缓存将在 30 天后请求新
  • 如何在 PHP 中将指数转换为小数

    我有一个像这样的字符串 9 018E 14 现在我想将其转换为正常的十进制数 我的极客伙伴 http www mygeekpal com how to convert exponentials to decimals in php 有一篇关
  • MySQL 连接器、流式结果集和批量获取

    我正在浏览 MySQL Connector 5 1 24 源代码 我注意到该方法中有一些不寻常的地方StatementImpl createStreamingResultSet javadoc 说 我们仅在结果集是只进 只读和 获取大小已设
  • 如何在 iPhone 上使用 Quartz/Core Graphics 显示国际口音

    我已经本地化了一个适用于 iPhone 的应用程序 毫不奇怪 本地化包括一些口音 触摸卡片进行选择 然后触摸 出价 Touchez les cartes pour les 选择者 puis touchez 守财奴 这些在高级的东西中工作得很
  • 将 UTC 纪元转换为本地日期

    我已经为此奋斗了一段时间了 我正在尝试将纪元转换为日期对象 该纪元以 UTC 格式发送给我 每当你经过new Date 一个纪元 它假设它是本地纪元 我尝试创建一个 UTC 对象 然后使用setTime 将其调整到正确的纪元 但似乎唯一有用
  • 在 R 中创建表达式树

    中的替代函数R以可以解析的树的形式创建一个语言对象 如何使用 list 从头开始 创建树 然后将其交给 eval substitute gives a tree representation of the expression a 1 b
  • 如何在 ASP.NET 3.5 中对每个 http 请求进行缓存

    我们使用 ASP NET 3 5 基于控件的方法 并且只需要特定于一个 http 请求的存储 使用会话 id 中的键的线程特定缓存将不起作用 因为线程应该被池化 因此我有机会在缓存中获得来自某些先前请求的数据 这在我的情况下是不可取的 我总
  • 在python中组合两个循环

    假设有两个多边形 p1 和 p2 其中 p2 完全在 p1 内部 p1 0 10 10 10 10 0 0 0 p2 2 6 6 6 6 2 2 2 degree of contact 0 xyarrays p1 p2 p1 degree
  • asp.net 中的 GridView 标题文本

    我想使用 Design 更改 gridview 的标题文本
  • Terminal.app 可以遵循 ANSI 转义码吗?

    我注意到 随着TERM环境变量设置为xterm or xterm 256colorMac OS X 的 Terminal app 实用程序尊重大多数 ANSI 转义码 至少当这些转义码涉及更改文本颜色时 例如 echo e 033 0 31
  • 我可以使用 C# 在 Sharepoint 2010 中为计算字段创建自己的公式吗

    我想使用 Visual Studio 2010 以 C 语言为 Sharepoint 2010 创建一个以编程方式计算的字段 有没有办法设置一个公式来调用我自己的函数并将结果返回到字段 我的场景 假设我想创建一个始终返回其他两个字段之间的总
  • 发件人证书在签名验证之前已过期

    我正在开发一个关于 Java 中的证书和数字签名的项目 但我无法理解以下情况 文件发送者和接收者的证书在创建签名时有效 但当接收者收到文件时 发送者的证书已过期 这种情况是否有效 接收者可以正常验证签名 还是不能 还有一个问题 不可否认密钥
  • GLMakie 图 x 轴的量化失真。为什么?

    我使用创建一个简单的图GLMakie GLMakie scatter range 3e 9 1e 3 3e 9 1e 3 100 range 1 100 100 结果如下 看起来 x 轴被严重量化了 这Plots包可以很好地处理相同的命令
  • libpng 在 png_read_info() 上崩溃

    我正在尝试在 vs2013 中使用 libpng 1 2 10 读取 png 文件 我下载了最新的zlib并编译了pnglib 运行良好 现在我正在尝试加载一个文件 int w width int h height const char n
  • 在 Android 的异步任务线程中调用 invalidate 时出现问题!

    我试图从 asynctask 线程调用 invalidate 我收到此错误 10 18 15 14 30 469 错误 AndroidRuntime 889 导致 android view ViewRoot CalledFromWrongT
  • 如何获取 Lucene 索引中文档子集的顶级术语?

    我知道可以获取 Lucene 索引中的顶级术语 但是有没有办法根据 Lucene 索引的子集获取顶级术语 IE 特定日期范围内的文档索引中最重要的术语是什么 理想情况下 应该有一个实用程序可以执行此操作 但我不知道有这样的实用程序 然而 以
  • 根据字符集对单词进行聚类

    假设有一个单词集 我想根据它们的字符包 多重集 对它们进行聚类 例如 茶 吃 阿爸 阿阿 你好 将被聚类成 茶 吃 abba aabb 你好 abba and aabb聚集在一起是因为它们具有相同的字符包 即两个a和两个b 为了提高效率 我