N-gram 提取器

n-gram 是文本中连续出现的 n 个词构成的序列。本工具会把输入的文本转为小写,按空格和标点切分成词,再统计你所选长度(1 到 8)的每一个 n-gram,输出一张按出现次数从高到低排序的 CSV 频率表。SEO 关键词密度检查、语言模型平滑和抄袭检测,靠的都是这张表。中文用户请注意:本工具依靠空格识别词,中文文本需要先分词(详见下文)。

如何提取 n-gram

  1. 1

    粘贴文本

    可以是文章、访谈记录或产品文案。合理长度的文本没有字数限制。

  2. 2

    选择 n 值

    一元组(1)、二元组(2)、三元组(3),最长可到 8。每次只处理一种长度。

  3. 3

    开始提取

    文本会先转为小写再切分成词,标点作为分隔符被丢弃。

  4. 4

    查看频率表

    每个 n-gram 都带有出现次数,按频率从高到低排列。

  5. 5

    复制 CSV

    结果以逗号分隔(N-gram,Count),可直接粘贴进电子表格。

不同长度的 n-gram 各能说明什么

N 名称 应用场景
1 一元组 关键词密度、主题分布
2 二元组 短语(“search intent”、“page speed”)、固定搭配
3 三元组 长尾短语、特征检测
4+ 四元组及以上 重复内容检测、抄袭标记

本工具如何切分你的文本

  • 全部转为小写,因此 “The” 和 “the” 会合并到同一行。
  • 词是由字母、数字或撇号组成的连续片段。 其他所有字符(标点、符号、换行)都视为分隔符并被丢弃。
  • 不保留句子边界。 上一句的末词和下一句的首词仍可能组成一个 n-gram,跨句的组合请谨慎解读。若这一点很重要,请逐句或逐段分析。
  • 停用词会保留。 工具不会替你过滤,如果只想要有语义的短语,导出后自行删除相应行即可。
  • 词是靠空格和标点识别的。 这意味着本工具统计的是级 n-gram,只适用于词与词之间有空格的语言。中文、日文和泰文不用空格分词:一整段没有空格的中文会被当成一个“词“,结果毫无意义。请先用分词工具处理(中文用 jieba,日文用 MeCab,泰文用泰语分词器),让词与词之间以空格隔开,再把结果粘贴到这里。

何时移除停用词

停用词是高频功能词,英文里如 “the”、“a”、“of”、“and”,中文里如“的“、“了”、“在”、“和”。保留它们会让二元组列表充斥“of the““在 的”这类无意义的组合。本工具不会替你删除,因此当你只想要有语义的短语时,请在导出的表格中删掉这些行;而在研究文体、作者归属或功能词本身就是信号的语言模型时,则应当保留。

SEO 使用场景

对于一篇主打 “nginx config generator” 的文章,请检查:

  • 目标二元组和三元组是否进入前 20 名。 如果 “nginx config” 排在第 40 位,说明这个词用得可能不够。
  • 是否堆砌关键词。 如果它以巨大优势排在第 1 位,文章读起来就像垃圾内容。
  • 是否存在语义相邻词。 “server block”、“proxy pass”、“ssl certificate” 这类相关二元组能让搜索引擎确信主题已被充分覆盖。

自然语言处理与学术应用

  • 语言模型利用 n-gram 频率做平滑和回退(Kneser-Ney、Good-Turing)。
  • 作者归属研究比较不同候选作者的三元组分布。
  • 机器翻译评测(BLEU)以候选译文与参考译文之间的 n-gram 重合度打分。

常见问题

从一条微博(此时 n-gram 几乎没有意义)到一整章书都可以。要让二元组具备统计可靠性,建议 1,000 词以上;三元组则需要 10,000 词以上。低于这个量,排名波动很大。

必须先分词才能用。本工具把“词“识别为分隔符之间的字母数字片段,而中文、日文、泰文写作时词与词之间不加空格,因此整句话会被当成一个词。请先用 jieba(中文)、MeCab(日文)或泰语分词器切分,让词之间以空格隔开,再把结果粘贴过来。也可以改用专门的字级 n-gram 工具。

本工具不区分。统计前一律转为小写,所以 “The” 和 “the”、“Apple” 和 “apple” 会合并为同一行。没有区分大小写的模式;如果需要把专有名词或代码单独区分开,请在粘贴前先在文本中做好标记。

它们只作为词的分隔符,绝不会出现在 n-gram 内部。但它们不会截断统计窗口:上一句的末词和下一句的首词仍会被算作一个二元组。如果你需要严格遵守句子边界,请逐句或逐段分别处理。

本工具不套用任何停用词表,需要你导出后自行过滤。英文最常用的是 NLTK 的 179 词表,大多数 SEO 工具都在用;Snowball、SpaCy 和 scikit-learn 提供的列表略有差异。中文可以使用哈工大停用词表或百度停用词表。

相关工具

此工具还提供其他语言版本