Go读取论文并转换为simhahs
package main
import (
"fmt"
_"flag"
_ "os"
_ "io/ioutil"
_"strings"
_ "path"
"log"
_ "baliance.com/gooxml/document"
"database/sql"
_ "github.com/go-sql-driver/mysql"
"time"
"github.com/yanyiwu/gosimhash"
)
func main(){
t1 := time.Now()
Mylog(doc)
if err != nil {
Mylog(err)
}
db, err := sql.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/gzpg_crs_jsj?charset=utf8");
if err != nil {
fmt.Println(err);
}
sql :="select s1.paper_id,s2.title_cn,s2.abstract_cn,s2.keyword_cn,s2.title_en,s2.abstract_en,s2.keyword_en,s1.s_content from sf_content s1,sf_paper s2 where s1.paper_id=s2.paper_id limit 10"
rows, err := db.Query(sql)
if err != nil {
fmt.Println(err);
}
stmt, err := db.Prepare("INSERT sim_path SET paperid=?,simcode=?")
if err != nil {
fmt.Println(err);
}
var str string
var code string
//查询多个
for rows.Next() {
var paper_id int //论文id
var title_cn string //中文题目
var abstract_cn string //中文摘要
var keyword_cn string //中文关键词
var title_en string //英文题目
var abstract_en string //英文摘要
var keyword_en string //英文关键词
var s_content string//全文内容
err = rows.Scan(&paper_id, &title_cn,&abstract_cn,&keyword_cn,&title_en,&abstract_en,&keyword_en,&s_content)
str = fmt.Sprintf("%s\n 摘要:%s\n 关键词:%s\n %s\n Abstract:%s\n Keywords:%s\n %s\n",title_cn,abstract_cn,keyword_cn,title_en,abstract_en,keyword_en,s_content)
code=simhash(str)
res, err := stmt.Exec(paper_id, code)
if err != nil {
fmt.Println(err);
}
id, err := res.LastInsertId()
if err != nil {
fmt.Println(err);
}
fmt.Print("%s成功%s \n",id,paper_id);
}
db.Close()
elapsed := time.Since(t1)
log.Println("时间花费位:\n" , elapsed)
}
func simhash(str string) (string) {
hasher := gosimhash.New("../dict/jieba.dict.utf8", "../dict/hmm_model.utf8", "../dict/idf.utf8", "../dict/stop_words.utf8")
defer hasher.Free()
fingerprint := hasher.MakeSimhash(str, 1)
var code string
var s string = "0000000000000000000000000000000000000000000000000000000000000000"
bs := []byte(s)
for i := 63; i >= 0; i-- {
if (fingerprint&1)==1 {
bs[i]='1'
} else {
bs[i]='0'
}
fingerprint >>=1
}
code =string(bs)
return code
}
func Mylog(v ...interface{}) {
f, err := os.OpenFile("20181105go.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
Mylog(err)
}
defer f.Close()
logger := log.New(f, TAG, log.Ldate|log.Ltime|log.Lmicroseconds)
logger.Println(v...)
}
Go读取论文并转换为simhahs的更多相关文章
- 【c#操作office】--OleDbDataAdapter 与OleDbDataReader方式读取excel,并转换为datatable
OleDbDataAdapter方式: /// <summary> /// 读取excel的表格放到DataTable中 ---OleDbDataAdapter /// </summ ...
- PHP excel读取excel文件转换为数组
/*备注:先去下载PHP EXCEL——http://download-codeplex.sec.s-msft.com/Download/Release?ProjectName=phpexcel&am ...
- 读取XML直接转换为类对象
<?xml version="1.0" encoding="utf-8"?> <ArrayOfMenuItems xmlns:xsi=&quo ...
- 微信小程序开发——活动规则类文案文件读取及自动转换为小程序排版代码
前言: 最近做的小程序活动规则内容比较多,且一直处于修改中.由于小程序并不支持类似Html5中的预排版,所以,活动规则内容修改较大的时候,仍需要对新的内容用小程序的<text>组件做下排版 ...
- Java POI 读取Excel数据转换为XML格式
1.首先要下载poi相关的包:http://poi.apache.org/ ,以下是所需的jar包 2.贴上详细的代码 public class ExcelToXml { /** * 将excel的 ...
- C#数据库读取数据后转换为INT32后计算的小技巧
这有什么难的,不管是什么数据库, 首先分别读出userinfo中usermoney的值 存入s1,card中extramoney的值s2 读出字段数据你应该会吧! 再用userinfo中字段userm ...
- C# ADO.NET+反射读取数据库并转换为List
public List<T> QueryByADO<T>(string connStr, string sql) where T : class, new() { using ...
- c# 读取二进制文件并转换为 16 进制显示
string result = ""; string filePath = "xxx.bin"; if (File.Exists(filePath)) { by ...
- C语言实现读取字符转换为浮点数,不使用scanf函数
c语言读取int或者float数据,我们习惯于使用scanf函数,但是如果不使用scanf函数,该怎么实现呢. 这里就来尝试一下,不使用scanf来读取数据并转换为float类型. 下面的getflo ...
随机推荐
- 查杀进程小工具——WPF和MVVM初体验
最近因为工作需要,研究了一下桌面应用程序.在winform.WPF.Electron等几种技术里,最终选择了WPF作为最后的选型.WPF最吸引我的地方,就是MVVM模式了.MVVM模式完全把界面和业务 ...
- 一些IT service的相关知识
1. cmd是什么,怎么在电脑上打开cmd命令框. 在windows环境下,命令行程序为cmd.exe,是一个32位的命令行程序,微软Windows系统基于Windows上的命令解释程序,类似于微软的 ...
- Go strconv包
strconv包 该包主要实现基本数据类型与其字符串表示的转换. 常用函数为Atoi().Itia().parse系列.format系列.append系列. 更多函数请查看官方文档. string与i ...
- 文件上传-阿里云OSS-存储文件
JS上传文件到阿里云OSS OSS支持流式写入和读出.特别适合视频等大文件的边写边读业务场景. 注意在OSS的控制台:跨域管理中设置允许的方法 <script> var client = ...
- 推荐算法之: DeepFM及使用DeepCTR测试
算法介绍 左边deep network,右边FM,所以叫deepFM 包含两个部分: Part1: FM(Factorization machines),因子分解机部分 在传统的一阶线性回归之上,加了 ...
- 2020年9月程序员工资统计,平均14459元!你给程序员拖后腿了吗?https://jq.qq.com/?_wv=1027&k=JMPndqoM
2020年9月全国招收程序员362409人.2020年9月全国程序员平均工资14459元,工资中位数12500元,其中95%的人的工资介于5250元到35000元. 工资与上个月持平,但是岗位有所增加 ...
- Java NIO:选择器
最近打算把Java网络编程相关的知识深入一下(IO.NIO.Socket编程.Netty) Java NIO主要需要理解缓冲区.通道.选择器三个核心概念,作为对Java I/O的补充, 以提升大批量数 ...
- docker19.03限制容器使用的内存资源
一,指定内存大小的参数: [root@localhost liuhongdi]# docker run -idt --name kafka2 --hostname kafka2 -m 200M --m ...
- phpstorm 使用xdebug
一.在phpstudy配置 开启xdebug的zend扩展,在php.ini 中添加下面的代码: [xdebug] zend_extension = "D:\phpstudy_pro\Ext ...
- java 实体对象转Map公共类
java 实体对象转Map公共类 package org.kxtkx.portal.utils; import java.lang.reflect.Field; import java.util.Ha ...