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的更多相关文章

  1. 【c#操作office】--OleDbDataAdapter 与OleDbDataReader方式读取excel,并转换为datatable

    OleDbDataAdapter方式: /// <summary> /// 读取excel的表格放到DataTable中 ---OleDbDataAdapter /// </summ ...

  2. PHP excel读取excel文件转换为数组

    /*备注:先去下载PHP EXCEL——http://download-codeplex.sec.s-msft.com/Download/Release?ProjectName=phpexcel&am ...

  3. 读取XML直接转换为类对象

    <?xml version="1.0" encoding="utf-8"?> <ArrayOfMenuItems xmlns:xsi=&quo ...

  4. 微信小程序开发——活动规则类文案文件读取及自动转换为小程序排版代码

    前言: 最近做的小程序活动规则内容比较多,且一直处于修改中.由于小程序并不支持类似Html5中的预排版,所以,活动规则内容修改较大的时候,仍需要对新的内容用小程序的<text>组件做下排版 ...

  5. Java POI 读取Excel数据转换为XML格式

    1.首先要下载poi相关的包:http://poi.apache.org/  ,以下是所需的jar包 2.贴上详细的代码 public class ExcelToXml { /** * 将excel的 ...

  6. C#数据库读取数据后转换为INT32后计算的小技巧

    这有什么难的,不管是什么数据库, 首先分别读出userinfo中usermoney的值 存入s1,card中extramoney的值s2 读出字段数据你应该会吧! 再用userinfo中字段userm ...

  7. C# ADO.NET+反射读取数据库并转换为List

    public List<T> QueryByADO<T>(string connStr, string sql) where T : class, new() { using ...

  8. c# 读取二进制文件并转换为 16 进制显示

    string result = ""; string filePath = "xxx.bin"; if (File.Exists(filePath)) { by ...

  9. C语言实现读取字符转换为浮点数,不使用scanf函数

    c语言读取int或者float数据,我们习惯于使用scanf函数,但是如果不使用scanf函数,该怎么实现呢. 这里就来尝试一下,不使用scanf来读取数据并转换为float类型. 下面的getflo ...

随机推荐

  1. 脚手架安装react

    //1 npm install -g create-react-app //2 create-react-app xxx //xxx项目名称 //3 cd xxx //xxx项目名称 npm star ...

  2. H264裸码流I/P/B帧类型判别

    花了两天时间做了个h264裸流nal类型和frame类型检测的工具,已上传至github,有需要的自行下载. 1.NAL类型检测 nal类型检测非常容易,对照下表即可容易判断类型. 较常用nal类型包 ...

  3. c#之task与thread区别及其使用

    如果需要查看更多文章,请微信搜索公众号 csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群, 我邀请你进群! ! ! --------------------------- ...

  4. docker-管理镜像常用命令

    1. docker管理镜像常用命令 指令 说明 docker   run     [容器 CONTAINER ID] 创建一个新的容器并运行一个命令 docker   start   [容器 CONT ...

  5. OAuth 2.0 Server PHP实现示例

    需求实现三方OAuth2.0授权登录 使用OAuth服务OAuth 2.0 Server PHP 环境nginx mysqlphp 框架Yii 一 安装 项目目录下安装应用 composer.phar ...

  6. 关于ptype_all和pypte_base中的pt_prev的说明[转]

    不知道原帖,我是从这里看到了,解决了迷惑我很久的疑问,抄过来. 看见noble_shi兄弟"关于net_rx_action函数的若干问题"贴中关于pt_prev的问题, 本来想在论 ...

  7. vue打包之后在本地运行,express搭建服务器,nginx 本地服务器运行

    一.使用http-server 1.安装http-server npm install -g http-server 2.通过命令进入到dist文件夹 3.运行http-server 以上在浏览器输入 ...

  8. rabbitmq--通配符模式Topics

    topic模式也称为主题模式,其实他相对于routing模式最大的好处就是他多了一种匹配模式的路由,怎么理解匹配呢,其实就相当于我们之前正则的.*这种,不过他的匹配机制可能不是这种(其实除了匹配规则外 ...

  9. ffmpeg实现视频转gif及gif缩放(ffmpeg4.2.2)

    一,为什么选择ffmpeg处理gif? 1,ffmpeg可以从视频中截取gif 2,ffmpeg在缩放gif时出错的机率较低, 而imagemagick在缩放gif时容易出错 我们在后面的例子中可以看 ...

  10. 解释器( interpreter ) 与 编译器( compiler ) 的对比

    什么是解释器与编译器 1.解释器 解释器是一种计算机程序,它将每个高级程序语句转换成机器代码. 2.编译器 把高级语言编写的程序转换成机器码,将人可读的代码转换成计算机可读的代码(0和1). 3.机器 ...