使用oracle與python進行中文分詞

2021-09-10 08:36:55 字數 1654 閱讀 7488

把看病時的主訴文字進行分割,獲得詞性。

從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 ...