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

MIT 许可证

550KB
246

Rust Latest Version Docs.rs

RustySozluk

Firefly rustysozluk-rust programming, sour, crabs with green lemons 67820

描述

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