Struct bosonnlp::BosonNLP [] [src]

pub struct BosonNLP {
    pub token: String,
    pub compress: bool,
    // some fields omitted
}

BosonNLP REST API 访问的封装

Fields

用于 API 鉴权的 API Token

是否压缩大于 10K 的请求体,默认为 true

Methods

impl BosonNLP
[src]

初始化一个新的 BosonNLP 实例

使用自定义参数初始化一个新的 BosonNLP 实例

使用自定义的 hyper Client 初始化一个新的 BosonNLP 实例

情感分析接口

contents: 需要做情感分析的文本序列

model: 使用不同的语料训练的模型

使用示例

extern crate bosonnlp;

use bosonnlp::BosonNLP;

fn main() {
    let nlp = BosonNLP::new(env!("BOSON_API_TOKEN"));
    let rs = nlp.sentiment(&vec!["这家味道还不错".to_owned()], "food").unwrap();
    assert_eq!(1, rs.len());
}

时间转换接口

content: 需要做时间转换的文本

basetime: 时间描述时的基准时间戳。如果为 None ,使用服务器当前的GMT+8时间

使用示例

extern crate bosonnlp;

use bosonnlp::BosonNLP;

fn main() {
    let nlp = BosonNLP::new(env!("BOSON_API_TOKEN"));
    let time = nlp.convert_time("2013年二月二十八日下午四点三十分二十九秒", None).unwrap();
    assert_eq!("2013-02-28 16:30:29", &time.timestamp.unwrap());
    assert_eq!("timestamp", &time.format);
}

新闻分类接口

contents: 需要做分类的新闻文本序列

使用示例

extern crate bosonnlp;

use bosonnlp::BosonNLP;

fn main() {
    let nlp = BosonNLP::new(env!("BOSON_API_TOKEN"));
    let rs = nlp.classify(&vec!["俄否决安理会谴责叙军战机空袭阿勒颇平民".to_owned()]).unwrap();
    assert_eq!(vec![5usize], rs);
}

语义联想接口

word: 需要做语义联想的词

top_k: 返回结果的条数,最大值可设定为 100

使用示例

extern crate bosonnlp;

use bosonnlp::BosonNLP;

fn main() {
    let nlp = BosonNLP::new(env!("BOSON_API_TOKEN"));
    let rs = nlp.suggest("北京", 2).unwrap();
    assert_eq!(2, rs.len());
}

关键词提取接口

text: 需要做关键词提取的文本

top_k: 返回结果的条数,最大值可设定为 100

segmented: text 是否已经进行了分词,若为 true 则不会再对内容进行分词处理

使用示例

extern crate bosonnlp;

use bosonnlp::BosonNLP;

fn main() {
    let nlp = BosonNLP::new(env!("BOSON_API_TOKEN"));
    let rs = nlp.keywords("病毒式媒体网站:让新闻迅速蔓延", 2, false).unwrap();
    assert_eq!(2, rs.len());
}

依存文法分析接口

contents: 需要做依存文法分析的文本序列

使用示例

extern crate bosonnlp;

use bosonnlp::BosonNLP;

fn main() {
    let nlp = BosonNLP::new(env!("BOSON_API_TOKEN"));
    let rs = nlp.depparser(&vec!["今天天气好".to_owned()]).unwrap();
    assert_eq!(1, rs.len());
    let dep0 = &rs[0];
    assert_eq!(vec![2isize, 2isize, -1isize], dep0.head);
    let rs = nlp.depparser(&vec!["今天天气好".to_owned(), "美好的世界".to_owned()]).unwrap();
    assert_eq!(2, rs.len());
}

命名实体识别接口

contents: 需要做命名实体识别的文本序列

sensitivity: 准确率与召回率之间的平衡。 设置成 1 能找到更多的实体,设置成 5 能以更高的精度寻找实体 一般设置为 3

segmented: 输入是否已经为分词结果

使用示例

extern crate bosonnlp;

use bosonnlp::BosonNLP;

fn main() {
    let nlp = BosonNLP::new(env!("BOSON_API_TOKEN"));
    let rs = nlp.ner(&vec!["成都商报记者 姚永忠".to_owned()], 2, false).unwrap();
    assert_eq!(1, rs.len());
    let rs = nlp.ner(&vec!["成都商报记者 姚永忠".to_owned(), "微软XP操作系统今日正式退休".to_owned()], 2, false).unwrap();
    assert_eq!(2, rs.len());
}

分词与词性标注接口

contents: 需要做分词与词性标注的文本序列

space_mode: 空格保留选项,0-3 有效

oov_level: 枚举强度选项,0-4 有效

t2s: 是否开启繁体转简体

special_char_conv: 是否转化特殊字符,针对回车、Tab 等特殊字符。

使用示例

extern crate bosonnlp;

use bosonnlp::BosonNLP;

fn main() {
    let nlp = BosonNLP::new(env!("BOSON_API_TOKEN"));
    let rs = nlp.tag(&vec!["成都商报记者 姚永忠".to_owned()], 0, 3, false, false).unwrap();
    assert_eq!(1, rs.len());
}

新闻摘要接口

title: 需要做摘要的新闻标题,如果没有则传入空字符串

content: 需要做摘要的新闻正文

word_limit: 摘要字数限制

not_exceed: 是否严格限制字数

使用示例

extern crate bosonnlp;

use bosonnlp::BosonNLP;

fn main() {
    let nlp = BosonNLP::new(env!("BOSON_API_TOKEN"));
    let title = "前优酷土豆技术副总裁黄冬加盟芒果TV任CTO";
    let content = "腾讯科技讯(刘亚澜)10月22日消息,前优酷土豆技术副总裁黄冬已于日前正式加盟芒果TV,出任CTO一职。";
    let rs = nlp.summary(title, content, 1.0, false);
    assert!(rs.is_ok());
}

文本聚类接口

task_id: 唯一的 task_id,话题聚类任务的名字,可由字母和数字组成

alpha: 聚类最大 cluster 大小,一般为 0.8

beta: 聚类平均 cluster 大小,一般为 0.45

timeout: 等待文本聚类任务完成的秒数,一般为 1800 秒

使用示例

extern crate bosonnlp;

use bosonnlp::BosonNLP;

fn main() {
    let nlp = BosonNLP::new(env!("BOSON_API_TOKEN"));
    let contents = vec![
        "今天天气好",
        "今天天气好",
        "今天天气不错",
        "点点楼头细雨",
        "重重江外平湖",
        "当年戏马会东徐",
        "今日凄凉南浦",
    ];
    let rs = nlp.cluster(contents, None, 0.8, 0.45, Some(10)).unwrap();
    assert_eq!(1, rs.len());
}

典型意见接口

task_id: 唯一的 task_id,典型意见任务的名字,可由字母和数字组成

alpha: 聚类最大 cluster 大小,一般为 0.8

beta: 聚类平均 cluster 大小,一般为 0.45

timeout: 等待典型意见任务完成的秒数,一般为 1800 秒

使用示例

extern crate bosonnlp;

use bosonnlp::BosonNLP;

fn main() {
    let nlp = BosonNLP::new(env!("BOSON_API_TOKEN"));
    let contents = vec![
        "今天天气好",
        "今天天气好",
        "今天天气不错",
        "点点楼头细雨",
        "重重江外平湖",
        "当年戏马会东徐",
        "今日凄凉南浦",
        "今天天气好",
        "今天天气好",
        "今天天气不错",
        "点点楼头细雨",
        "重重江外平湖",
        "当年戏马会东徐",
        "今日凄凉南浦",
    ];
    let rs = nlp.comments(contents, None, 0.8, 0.45, Some(10)).unwrap();
    assert_eq!(4, rs.len());
}

Trait Implementations

impl Debug for BosonNLP
[src]

Formats the value using the given formatter.

impl Clone for BosonNLP
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more