使用方法
- 在文本框里一行一个关键词,最多 50 行。页面打开时已经预置了四行示例,统计卡上显示的 4 行、20 个候选、12 个标签就是它算出来的结果。
- 选「目标平台」。这一步同时决定两件事:允许的标签数量上限,以及这个平台正文能放多少字符。
- 勾转换样式。五种样式默认全勾,四种英文写法加一种下划线写法;中文关键词做大小写转换是无效操作,五种里会有四种输出同一个字符串,被去重合并掉。
- 「输出标签数上限」默认 12,允许 1~60;它会和平台的数量上限取小值。比如选 Instagram(上限 30)而这里填 12,最终就输出 12 个。
- 点「生成话题标签」,或在文本框里按 Ctrl + Enter。结果区给出标签清单,下方表格逐行标注字符数、来源关键词与转换样式;点「复制全部」带走,点「导出 CSV」存表,点「复制对照表」按制表符格式粘进 Excel。
这个话题标签生成器能解决什么问题
一是把「人肉手打空格」这一步省掉。社媒标签不能含空格,coffee shop 2026 必须写成 #coffeeshop2026 或 #CoffeeShop2026 才有意义。手动改写十条关键词很容易漏掉一个空格,结果整条标签在平台上就是一段普通文字,点不动也搜不到。
二是一次拿到同义的不同写法。同一个主题在 Instagram 上惯用驼峰、在 X 上惯用小写,本工具把五种写法一次性列出来,你按平台挑一列复制即可,不用来回改。
三是提前知道会不会被平台截断。Instagram 每篇文案最多 30 个标签,YouTube 描述里超过 60 个标签则全部失效,X 单条推文只有 280 字符。这个话题标签生成器在你选平台之后就把数量上限和字符上限同时套上,并且在提示行里写明「数量还剩几个位、字符还剩多少个」,不会让你把 40 个标签丢进 YouTube。
四是去掉重复与大小写打架。标签匹配不区分大小写,#CityWalk 和 #citywalk 指向同一个聚合页;同时用两个只是浪费名额。选「忽略大小写去重」就能把它们合并成一个。
本页不做这些事:不联网查热度、不给标签做效果预测、不做违禁词审核、不区分品牌标签与通用标签。这个话题标签生成器只做格式转换和上限校验,能不能带来流量取决于标签本身选得对不对。想知道一组已有标签用了多少个、字符多长,用页面底部的「话题标签统计」;想看各平台数量规则的原文出处,用「Instagram话题标签数量指南」。
转换原理:按码点清洗、样式改写与平台上限裁剪
清洗这一步按 Unicode 码点走,不按 UTF-16 码元走。代码是 [...文本] 展开后用逐码点判断,保留字符只有四类:拉丁字母 A-Z a-z、数字 0-9、下划线 _、以及 CJK 统一表意文字基本区 U+4E00–U+9FFF。用码点迭代而不是 split('') 的原因是补充平面字符:一个表情在 split('') 下会被切成两个孤立的代理码元,两边都不在保留集合里,虽然最终结果一样是丢掉,但中间态出现半个代理对,遇到还要做长度统计的场景就会算错。这里顺手把空白归一成单个空格,作为后面分词的依据。
为什么下划线是唯一允许的符号。看 RFC 3986 §2.3 的 unreserved 字符集:ALPHA / DIGIT / "-" / "." / "_" / "~"。其中连字符 -、点 .、波浪号 ~ 各平台对标签的定义都不收(Instagram 帮助页明确说空格和 $、% 这类特殊字符都不行),只有下划线 _ 被广泛接受。#coffee_shop_2026 能成立、#coffee-shop-2026 在很多平台上会被拆成三段,差别就在这里。
五种样式的改写规则是可以逐字复述的。先按空格分词得到 [w1, w2, …],然后:原样 = w1+w2;全小写 = (w1+w2).toLowerCase();首字母大写 = 每个词 charAt(0).toUpperCase() + slice(1).toLowerCase() 再相连;驼峰 = 首词小写、其余词首字母大写;下划线 = w1_w2 再转小写。中文关键词的 toUpperCase() 是空操作——汉字没有大小写,'手'.toUpperCase() 还是 '手',所以「手冲咖啡 入门」在四种英文样式下都得到 #手冲咖啡入门,只有下划线样式给出 #手冲咖啡_入门。默认四行关键词之所以只有 12 个标签而不是 20 个,就是被这种同值合并吃掉了 8 个。
去重键的口径有两档。「精确去重」用标签本身当键,只有完全相同的字符串才合并;「忽略大小写去重」改用 tag.toLowerCase() 当键,会把 #coffeeshop2026 与 #CoffeeShop2026 认成同一个。默认选精确去重,是因为大小写不同的写法在视觉上有区别,你可能正想两种都留着给不同平台用;等你确认只要一个时,再切到忽略大小写去重,12 个会进一步合并成 8 个。
最后一步是把平台上限套上去。数量上限取「你填的输出上限」与「平台标签数量上限」的较小值(平台无硬上限时就只用你填的值),字符上限则用来检查标签串总长度。这一步不会替你删标签,只会如实告诉你超了多少——毕竟删哪几个标签是内容判断,不是格式判断。
完整示例(数值仅作演示)
示例条件与页面打开时的默认值完全一致:关键词四行、五种样式全勾、加 # 前缀、精确去重、输出上限 12、平台 Instagram。逐项对账:
- 关键词 4 行:
手冲咖啡 入门、coffee shop 2026、City Walk、咖啡豆 烘焙; - 候选标签 20 个,等于 4 行 × 5 种样式;
- 精确去重后 12 个,被合并掉的 8 个全部来自「同一个关键词的四种英文样式给出同一个字符串」——四行乘以四种英文样式共 16 个候选,只剩下 4 个不同的串;
- 标签串按空格连接共 138 个字符,远小于 Instagram 的 2200 字符上限,也不超过 X 的 280 字符;
- 12 个标签里最长的是
#coffee_shop_2026,17 个字符。
下表把四个关键词在五种样式下的全部输出摊开,同一行是一个关键词的五种写法:
| 关键词 | 原样保留 | 全小写 | 首字母大写 | 驼峰 | 下划线连接 |
|---|---|---|---|---|---|
| 手冲咖啡 入门 | #手冲咖啡入门 | #手冲咖啡入门 | #手冲咖啡入门 | #手冲咖啡入门 | #手冲咖啡_入门 |
| coffee shop 2026 | #coffeeshop2026 | #coffeeshop2026 | #CoffeeShop2026 | #coffeeShop2026 | #coffee_shop_2026 |
| City Walk | #CityWalk | #citywalk | #CityWalk | #cityWalk | #city_walk |
| 咖啡豆 烘焙 | #咖啡豆烘焙 | #咖啡豆烘焙 | #咖啡豆烘焙 | #咖啡豆烘焙 | #咖啡豆_烘焙 |
同一批候选换三种去重口径,输出个数差别很大,这也是「为什么默认不是 20 个」的答案:
| 去重方式 | 输出标签数 | 怎么来的 |
|---|---|---|
| 不去重 | 20 | 4 行 × 5 样式,全部原样输出,含大量完全相同的串 |
| 精确去重(默认) | 12 | 完全相同的字符串只留第一个,#CityWalk 与 #cityWalk 仍然共存 |
| 忽略大小写去重 | 8 | 再把 #CityWalk/#citywalk/#cityWalk 合并成 1 个 |
输入范围与平台上限对照表
下表是五个平台的官方数字。数量上限与字符上限都取自各平台的帮助页或开发者文档,这类数字会随版本调整,用之前建议按「依据」一列去复核一次:
| 平台 | 承载字段 | 标签数量上限 | 正文字符上限 | 依据 |
|---|---|---|---|---|
| 帖子 / Reels 文案 | 30 个 | 2200 | developers.facebook.com(每篇文案 30 个标签) | |
| YouTube | 视频描述 | 60 个(超过则全部忽略) | 5000 | support.google.com |
| TikTok | 视频文案 | 无独立上限 | 2200 | developers.tiktok.com |
| X / Twitter | 单条推文 | 无独立上限 | 280 | help.x.com |
| 帖子正文 | 无独立上限 | 3000 | LinkedIn 帮助页 |
文本框、输出上限与样式的允许范围:
| 输入项 | 允许范围 | 默认值 | 越界时页面怎么处理 |
|---|---|---|---|
| 关键词框 | 1~50 行,每行清洗后至少剩 1 个可用字符 | 4 行 | 空框、全被清洗成空的行走具体报错,不静默出空结果 |
| 输出标签数上限 | 1~60 的整数 | 12 | 0、−1、61、小数、字母、空值逐项报错 |
| 转换样式 | 5 种里至少勾 1 种 | 5 种全勾 | 一个都不勾时报错并清空结果 |
| 目标平台 | 5 个选项之一 | 下拉框不提供非法值 | |
| 去重方式 | 精确 / 忽略大小写 / 不去重 | 精确 | 下拉框不提供非法值 |
单个标签的长度也有实际约束:Instagram 不限制单条标签的长度,但过长的标签在界面上会被截断显示;绝大多数平台把标签当成一个整体词来索引,超过 20 个字符之后基本没人会完整输入。本页不做单条长度截断,只在表格里把字符数列出来,让你自己判断。
边界与舍入说明
- 字符数按码点算,一个汉字算 1 个字符。汉字在 BMP 平面内,UTF-16 里也只占一个码元,所以两种口径一致;只有表情和扩展 B 生僻字会因为占两个码元而出现分歧,而它们已经在清洗阶段被去掉了,所以本页的字符数不存在口径歧义。
- 纯数字标签在 X 上不会被识别。
#2026发在 X 上只是一段带井号的文字,不是可点击标签;#2026coffee才是。本页在备注列把纯数字的候选标成「X 上不识别」,但不会自动删除它——Instagram 和 TikTok 接受纯数字标签,换个平台它就有用。 - 50 行的上限是为了避免一次粘贴整篇文章。每行会按空格再分词,一行写得太长(比如整段中英文混排的句子)会生成一个很长的标签,实际没人会点。建议一行就是一个词组,2~4 个词为宜。
- 超上限只提示、不自动删除。当标签数量超过平台上限,页面在提示行写明「超出 N 个,建议删到上限以内」,但结果区仍然完整展示。删哪几个属于内容决策,工具替你删反而更容易误删掉最想用的那个。
- 去重是保序的。保留的是第一次出现的那个写法,位置不动。这意味着一行中文关键词会留下「原样」样式产出的那个串,英文关键词会留下「原样」样式产出的串——如果你更想要驼峰那一条,把原样样式取消勾选即可,剩下的第一条就是全小写或驼峰。
- 字符总数是不含分隔符的。统计卡里的「标签串字符」是 12 个标签按一个空格连接起来的长度,共 138 字符。真正发帖时你若改成换行分隔,字符数会变成 138,因为换行同样只算 1 个字符;但很多平台把换行也算进正文长度,长列表要留意这一点。
- 本页不对标签做合规审核。各平台禁止把侮辱、误导、与内容无关的标签加进帖子,YouTube 甚至明确说误导性标签可能导致内容被移除。这些判定需要语义理解,不是格式校验能覆盖的。
常见问题
为什么四个关键词只出来 12 个标签,不是 20 个?
因为默认开了精确去重。「手冲咖啡 入门」在四种英文样式下都得到 #手冲咖啡入门——汉字没有大小写,toUpperCase() 不改变任何字符,于是这四个候选是同一个字符串,只保留一个。把「去重方式」切到「不去重」就能看到完整的 20 条,其中 8 条是重复串。
YouTube 是不是超过 15 个标签就全部失效?
不是,这个说法在大量教程里被反复传抄但和官方文档不符。YouTube 帮助页写的是「If a video or playlist has more than 60 hashtags, we'll ignore each hashtag on that content」,阈值是 60。15 这个数字更像是「建议只用 3~5 个」这类最佳实践被误当成了硬规则。
标签前面的 # 是必须的吗?
在社媒平台上是必须的,coffee2026 只是一段文字,#coffee2026 才是标签。本页的「加 # 前缀」默认勾选,取消勾选后输出的是裸词,适合拿去当文件名、SKU 或数据库字段值——那些场景里井号反而是非法字符。
为什么下划线能保留,连字符和点号却被删掉?
看 RFC 3986 §2.3 的 unreserved 集合,下划线 _、连字符 -、点 .、波浪号 ~ 都在里面,但只有下划线被各平台普遍接受为标签字符。Instagram 帮助页明确说空格和 $、% 这类特殊字符都不行;连字符在多数平台上会把标签切断。所以本页只放行下划线这一个符号。
「精确去重」和「忽略大小写去重」该选哪个?
先用精确去重。它保留 #CityWalk、#citywalk、#cityWalk 三种写法,你可以挑一个风格统一的;等你确认平台和风格之后,再切到忽略大小写去重,输出会从 12 个进一步压到 8 个,避免同一篇帖子里出现两个指向同一个聚合页的标签。
粘贴进来带标点和表情会怎样?
会被直接丢弃,并且在清洗后再判断这一行还剩不剩可用字符。比如 coffee ☕️ shop! 会变成 coffee shop,进而生成 #CoffeeShop;如果整行只有表情和标点,清洗后为空,这一行会被跳过并在提示行里报出来,不会凭空产生一个 # 单独成行的标签。
标签的数量上限和正文的字符上限,哪个会先撞到?
按默认示例的平均长度 9 到 10 个字符算,Instagram 的 30 个标签大约占 300 字符左右,离 2200 的字符上限还差得很远,所以先撞的是数量上限。唯一例外是 X:它没有标签数量上限,但整条推文只有 280 字符,长标签堆到十几个就会先撞字符上限。
生成的结果会保存到服务器或者被上传吗?
不会。清洗、分词、样式转换、去重、上限校验全部在这一个页面里完成,代码里没有任何网络请求,也不会写入浏览器存储,刷新页面后文本框回到预置的四行示例。想自己确认,打开开发者工具的 Network 面板,点几次「生成话题标签」,不会看到新的请求。
相关工具
- 话题标签统计:反过来数一组现成标签的个数、字符长度与重复情况,用来核对本页输出是否符合平台限制。
- Instagram话题标签数量指南:把 Instagram 各位置的数量规则摊开讲,包括 Stories 与 Reels 的差别。
- Instagram文案生成器:标签定好之后配正文,让标签和文案的关键词口径保持一致。
- TikTok文案生成器:按 TikTok 的正文长度习惯生成配套文案。
- YouTube标签提取:从已有视频里把标签抓出来做词表,再回填到本页的关键词框。
- 随机词语生成器:想不出关键词时先随机取一批种子词,再挑合适的贴进本页。
- 随机句子生成器:生成句子后做标签化的对照练习,观察哪些短语会被清洗规则拆散。
- 生成器:查看全部生成器工具。