文档章节

go语言调用API实线分词

Java_Coder
 Java_Coder
发布于 2015/06/09 21:26
字数 271
阅读 73
收藏 3

1、确保已经安装go语言

2、代码实现

A.这里我采用了开源的API,https://github.com/denghongcai/pullword,简单的实现了功能

B.代码:

package pullword

import (
	"bufio"
	"fmt"
	"net"
	"strings"
)

type request struct {
	source string
	param1 float32
	param2 uint
}

func NewRequest(source string, threshold float32, debug bool) request {
	var param2 uint
	if debug {
		param2 = 1
	} else {
		param2 = 0
	}

	return request{
		source: source,
		param1: threshold,
		param2: param2,
	}
}

func (req request) Do() ([]string, error) {
	conn, err := net.Dial("tcp", "api.pullword.com:2015")
	if err != nil {
		return nil, err
	}
	writer := bufio.NewWriter(conn)
	_, err = writer.WriteString(fmt.Sprintf("%s\t%1.2f\t%d]\r\n", req.source, req.param1, req.param2))
	if err != nil {
		return nil, err
	}
	writer.Flush()
	if err != nil {
		return nil, err
	}
	scanner := bufio.NewScanner(conn)
	list := make([]string, 0)
	for scanner.Scan() {
		if scanner.Text() != "\r\n" && scanner.Text() != "" {
			list = append(list, strings.Trim(scanner.Text(), "\r\n"))
		}
	}
	if err := scanner.Err(); err != nil {
		return nil, err
	}
	return list, nil
}

package main

import (
	"fmt"
	"os"
	"pullword"
	"io/ioutil"    
)

func main() {

	result_str := ""
	
	result_str = readFile("/home/tian/Desktop/test.txt")

	req := pullword.NewRequest(result_str, 1, true)
	result, err := req.Do()
	if err != nil {
		panic(err)
	}
	fmt.Printf("%q", result)

}

func readFile(path string) string {  
    fi,err := os.Open(path)  
    if err != nil{panic(err)}  
    defer fi.Close()  
    fd,err := ioutil.ReadAll(fi)  
    return string(fd) 
}

test.txt
你的姿势水平还远远不够

C.运行结果:

["姿势:1" "水平:1" "远远:1" "不够:1"]


© 著作权归作者所有

共有 人打赏支持
上一篇: vim游戏
Java_Coder
粉丝 60
博文 159
码字总数 102864
作品 0
杭州
私信 提问
python调用hanlp分词包手记

python调用hanlp分词包手记 Hanlp作为一款重要的分词工具,本月初的时候看到大快搜索发布了hanlp的1.7版本,新增了文本聚类、流水线分词等功能。关于hanlp1.7版本的新功能,后面有使用的到时...

左手的倒影
2018/12/26
0
0
JAVA自然语言处理NLP工具包

Java自然语言处理 LingPipe LingPipe 是一个自然语言处理的Java开源工具包。LingPipe目前已有很丰富的功能,包括主题分类(Top Classification)、命名实体识别(Named Entity Recognition)...

javaex999
2014/05/05
0
0
狮子的魂/jcseg

Jcseg是什么? Jcseg是基于mmseg算法的一个轻量级中文分词器,同时集成了关键字提取,关键短语提取,关键句子提取和文章自动摘要等功能,并且提供了一个基于Jetty的web服务器,方便各大语言直...

狮子的魂
2013/11/16
0
0
Lucene小记(入门篇),索引创建、更新、删除、查找等操作。

虽然使用Lucene已经有一段时间了,但是仍不敢妄加评论Lucene的好与坏,毕竟目前接触的全文索引技术只有Lucene。而且Lucene并不是真正意义上的引擎,只算的上是Java开发的全文索引工具包。与传...

Jialy
2014/06/26
0
9
分词,难在哪里?科普+解决方案!

题图:by Lucas Davies 一、前言 分词,我想是大多数大前端开发人员,都不会接触到的一个概念。这个不影响我们了解它,毕竟我们要多方向发展。今天就来简单介绍一些分词,我尽量用简介的语言...

承香墨影
2018/10/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spark in action on Kubernetes - Playground搭建与架构浅析

前言 Spark是非常流行的大数据处理引擎,数据科学家们使用Spark以及相关生态的大数据套件完成了大量又丰富场景的数据分析与挖掘。Spark目前已经逐渐成为了业界在数据处理领域的行业标准。但是...

阿里云官方博客
22分钟前
3
0
小白大数据学习路线

学习大数据首先了解大数据技术得板块划分: 数据计算(离线计算):Hadoop、spark 数据计算(实时计算):storm、spartstreaming、flink 其他框架:zookeeper 数据采集:flume、Kafka 数据存...

董黎明
35分钟前
0
0
mariadb 内存占用优化

本文由云+社区发表 作者:工程师小熊 摘要:我们在使用mariadb的时候发现有时候不能启动起来,在使用过程中mariadb占用的内存很大,在这里学习下mariadb与内存相关的配置项,对mariadb进行调...

腾讯云加社区
今天
4
0
spring security 自定义登录认证

spring security 自定义认证登录 1.概要 1.1.简介 spring security是一种基于 Spring AOP 和 Servlet 过滤器的安全框架,以此来管理权限认证等。 1.2.spring security 自定义认证流程 1)认证...

EasyProgramming
今天
2
0
Win下Jenkins-2.138源码编译及填坑笔记

源码编译篇 1、 安装JDK1.8-181,操作系统添加JDK环境变量。Java -version验证一下。 注:Jenkins2.138版本,JDK必须jkd1.8.0-101以上,不支持Java9,Maven必须3.5.3以上。 2、 解压Maven3....

编程SHA
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部