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 文本处理
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