11 个版本
0.2.0 | 2024年2月8日 |
---|---|
0.1.9 | 2024年1月11日 |
0.1.8 | 2023年9月1日 |
0.1.4 | 2023年8月28日 |
#30 in #entries
550KB
246 行
RustySozluk
描述
RustySozluk
是一个用于从 eksisozluk.com 获取用户条目和线程条目并分析条目情感的 Rust 库。凭借 Rust 和 tokio
库的力量,可以在非常短的时间内获取条目。
特性
- 通过用户名获取用户条目
- 获取特定线程的条目
- 使用 Rust 的
async/await
实现异步 API - 将条目导出到 JSON 和 CSV 格式
- 计算条目的情感或获取条目中单词的简单频率
安装
将 rustysozluk
添加到您的 Cargo.toml
[dependencies]
rustysozluk = "0.1.9"
使用方法
use rustysozluk::{fetch_user, tokio};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let username= "morgomir"; // username to fetch //alınacak kullanıcı adı
let entry_number = 4; // number of entries to fetch //alınacak girdi sayısı
let entries = fetch_user(username, entry_number).await?;
println!("Extracted {} entries:", entries.len());
for entry in entries.iter() {
println!("Content: {}\nDate: {}\nUsername: {}", entry.content, entry.date, entry.username);
}
Ok(())
}
如果您想获取线程中的条目,可以使用与 fetch_user
函数相同的 fetch_thread
函数,无需更改任何内容。
情感分析
rustysozluk 有一个用于情感分析的 "analyzer" 模块。它使用 Sağlam et al., 2019 模型将条目分类为正面、负面,并给出介于 -1 和 1 之间的 "Tone" 分数。
以下是一个示例用法
use rustysozluk::tokio;
use rustysozluk::fetch_title;
use rustysozluk::analyzer::analyzer::analyze_sentiment;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let title = "https://eksisozluk.com/rust-programlama-dili--5575227";
let number_of_entries = 4;
let entries = fetch_title(title, number_of_entries).await?;
analyze_sentiment(entries)?;
Ok(())
}
重要提示 📝
要正确使用分析模块,您需要访问两个用于情感分析的词汇表 CSV 文件。这些文件是
- stopwords.csv - 包含在预处理期间要过滤掉的土耳其语停用词列表。
- SWNetTR.csv - 包含基于上述模型的情感词汇表。
这两个文件都可以在 GitHub 仓库的 files 文件夹中找到。下载它们并将它们放置在您的项目目录中。
请求限制和速率限制 ⚠️
在使用 rustysozluk
包时,请注意您对 eksisozluk.com 发出的请求数量。在短时间内发送过多的请求可能会导致您的 IP 地址暂时被禁止访问该网站。
建议 📋
-
速率限制:在您的代码中实现速率限制,以控制请求的频率。
-
批量请求:如果可能,将多个查询组合在一起以最小化单个请求的数量。
-
缓存:将结果本地存储,以减少对同一URL的重复请求。
-
遵守这些指南,有助于维护对eksisozluk.com资源的尊重使用,并确保您可以不间断地继续从rustysozluk库提供的功能中获益。
贡献
欢迎任何形式的贡献!请随意打开一个问题哦。
依赖项
~10-25MB
~349K SLoC