#tags #cli-tool #directory #command-line #word-analysis #writing-analysis

bin+lib tagalyzer

一个用于收集与纯文本相邻文件集合的统计信息的 CLI 工具

6 个版本 (3 个破坏性更新)

0.3.0 2023 年 10 月 23 日
0.2.0 2023 年 10 月 20 日
0.1.1 2023 年 10 月 9 日
0.0.2 2023 年 9 月 22 日

#705 in 文本处理

MIT/Apache

40KB
679

Tagalyzer

这是一个 CLI 工具,它可以统计文件中的单词数量,并以易于人类阅读的格式打印出来。我制作它是为了帮助我分析自己的写作,以帮助我为博客文章选择标签。

这个工具最终将成为一个词相对频率分析器。最终的目标是将它指向一个目录或文件列表,然后它会分析所有文件中所有单词的总计统计值,以及按文件划分单词频率的变化。

安装

CLI

如果您想自己分析写作样本,请安装命令行工具

cargo install tagalyzer

之后,尝试运行 tagalyzer --help 来查看用法并查看下面的示例。

如果您想在自己的项目中使用库来进行文本分析,请使用 Cargo 将 Tagalyzer 添加为依赖项

cargo add tagalyzer

示例

$ tagalyzer LICENSE-* # Glob matching, case-insensitive text processing
Sorted wordcount for LICENSE-MIT
software       : 10
without        : 4
including      : 4
--- [snip] ---
Sorted wordcount for LICENSE-APACHE
work           : 33
any            : 30
license        : 26
--- [snip] ---
$ tagalyzer LICENSE-MIT -c # Case sensitive when counting, not when filtering
Sorted wordcount for LICENSE-MIT
Software       : 6
SOFTWARE       : 4
ANY            : 3
this           : 3
including      : 3
OTHER          : 3
--- [snip] ---
$ tagalyzer LICENSE-MIT -ci # Case sensitive, filters "or" but not "OR"
Sorted wordcount for LICENSE-MIT
OR             : 8
THE            : 7
Software       : 6
OF             : 5
IN             : 5
SOFTWARE       : 4
--- [snip] ---

长期计划

我计划将这个工具开发成 CLI 二进制文件和并行库,分别提供即用型和高度定制化的解决方案。它将通过提供我所有博客文章所在目录中单词和短语的频率(例如,最多 n 个单词或字符的字符串)来适应我的工作流程,这可以帮助我决定一组适用的标签。

许可

本作品根据用户的选择,受 MIT 或 Apache 2.0 许可证的约束。

除非另有说明,否则贡献假定受 MIT 许可证的约束。

本项目在 MIT 许可证下使用 Rust 语言和各种库。

贡献

欢迎贡献!该项目托管在 GitLab 上。欢迎提交错误报告、提交或仅仅是建议。

如果您想贡献代码,我更熟悉合并分支而不是分支。我有一个在 CI 中的门控测试和 lint,应等同于下面的代码块。如果在本地运行此代码块和 CI 中发生的情况不同,请创建一个问题。

cargo fmt &&
cargo test &&
cargo clippy --no-deps -- \
-Dclippy::pedantic \
-Dclippy::nursery \
-Dclippy::style \
-Dclippy::unwrap_used \
-Dclippy::expect_used \
-Dclippy::missing_docs_in_private_items \
-Dclippy::single_char_lifetime_names \
-Dclippy::use_self \
-Dclippy::str_to_string \
-Ddead_code \
-Aclippy::needless_return \
-Aclippy::tabs_in_doc_comments \
-Aclippy::needless_raw_string_hashes \
-Dwarnings

依赖关系

~3.5–5MB
~88K SLoC