把看病時的主訴文字進行分割,獲得詞性。
從oracle讀入文字,在python中分割後完成再寫會oracle。
最開始使用自帶的開源包,比較了3種中文分詞包,thulac,snowlp,jieba,根據目測,發現還是jieba好一些。
將全量的資料分詞完畢後,發現依然存在分割錯誤的問題。
# -*- coding:utf-8 -*-
import cx_oracle
import pandas as pd
from aip import aipnlp
import jieba
import jieba.analyse
import jieba.posseg
from snownlp import snownlp
import thulac
import numpy as np
api_key = '******x'
secret_key = '******x'
## 讀入資料
conn = cx_oracle.connect('scott/密碼@localhost/orcl')
curs = conn.cursor()
curs.execute('select zs from tmp_zs_cnt where zs like \'%左%\' or zs like \'%右%\'')
# 分詞並寫入資料庫 tmp_zs_fc_1(zs,fc)
cursinput = conn.cursor()
table = 'tmp_zs_fc_1'
query = "insert into " + table + "(zs,fc,cx) values ('%s', '%s', '%s')"
# df = pd.dataframe(curs.fetchall(),columns = ["zs"])
rowcount = 0
while 1:
rowcount += 1
try: # 對所有報錯不予解決,只記錄行號
onerow = curs.fetchone() # 編碼出錯
if not onerow:
break
rawstring = onerow[0]
# ss = jieba.posseg.cut(rawstring) #編碼出錯
ss = client.lexer(rawstring)
for x in ss['items']:
zs = rawstring
# fc = x.word
# cx = x.flag
fc = x['item']
cx = x['pos']
cursinput.execute(query % (zs, fc, cx)) # 字串中帶有'
conn.commit()
except exception as e:
print('報錯的行號:',rowcount)
continue
# 關閉游標
curs.close()
cursinput.close()
conn.close()
print("ok, program ends")
後續可能考慮如何基於現有的包,提高分詞的準確率。 python 使用經驗Oracle
剛開始寫程式時寫的是訂單處理系統,各種入庫,出倉,訂單跟蹤,運單跟蹤,商品上下架都是利用mysql來完成的,感覺沒有任何難度,裝好api就可以使用了,而最近在寫乙個定時爬蟲,將內容判斷是否是天氣後將資料存入oracle中,而oracle的操作過程值得做個記錄。我是使用python來操作oracle,...
oracle安裝與使用
oracle和mysql一樣,他只是乙個軟體,以表的形式標準化儲存我們的資料,而對於運算元據庫 是用的sql oracle的安裝 按照教程進行安裝,難度不打,版本一定要匹配,10 和 11 安裝的步驟是不一樣的,當安裝完成之後,我們就可以利用oracle提供的登陸窗體sqlplus進行資料庫登陸,輸...
MySQL與oracle使用區別
type mysql oracle 超長文字 test 型別 nclob,clob,blob,nblob 在查詢時建議把該字段to char 日期是否相等 date format overtime date,y date format y to char overtime date,yyyy to ...