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. 《C++ primer plus》第5章练习题

    1.输入两个整数,输出两个整数之间所有整数的和,包括两个整数. #include<iostream> using namespace std; int main() { int num1, ...

  2. 6-kubernetes网络

    1.service存在的意义 防止破的失联(服务发现) 定义一组pod的访问策略(提供负载均衡) 2.pod与service的关系 通过label-selector相关联 通过service实现pod ...

  3. MySQL 复制表(表结构、表结构和数据)

    MySQL 中使用 命令行 复制表结构及数据的方法主要有以下几种: 1.只复制表结构 CREATE TABLE new_table SELECT * FROM old_table WHERE 1=2: ...

  4. spring-boot-route(十三)整合RabbitMQ

    这篇是SpringBoot整合消息队列的第一篇文章,我们详细介绍下消息队列的相关内容. 消息队列简介 1. 什么是消息队列 MQ(Message Quene):通过典型的生产者和消费者模型,生产者不断 ...

  5. WesternCTF2018_shrine

    这个想了半天没啥思路,直接查别人的wp,贴地址:https://blog.csdn.net/qq_42812036/article/details/104324923 0x00 开始的页面猛一看乱七八 ...

  6. ansible-playbook通过github拉取部署Lnmp环境

    1. 配置服务器初始化  1.1) 关闭防火墙和selinux 1 [root@test-1 ~]# /bin/systemctl stop firewalld 2 [root@test-1 ~]# ...

  7. tomcat 验证码显示问题

    在Web开发中使用验证码时可能遇到的问题:java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsE ...

  8. ORACLE结构化查询语句

  9. lumen-ioc容器测试 (3)

    lumen-ioc容器测试 (1) lumen-ioc容器测试 (2) lumen-ioc容器测试 (3) lumen-ioc容器测试 (4) lumen-ioc容器测试 (5) lumen-ioc容 ...

  10. spring boot:spring security整合jwt实现登录和权限验证(spring boot 2.3.3)

    一,为什么使用jwt? 1,什么是jwt? Json Web Token, 它是JSON风格的轻量级的授权和身份认证规范, 可以实现无状态.分布式的Web应用授权 2,jwt的官网: https:// ...