通過公司名稱獲取公司關鍵詞

2022-03-15 12:15:33 字數 4870 閱讀 8991

大部分公司名稱的組成分為以下幾個部分

地區\名稱\公司型別

江西五維實業****

深圳康泰生物製品股份****

hanlp 的詞性對照表:

地點(ns)和機構字尾(nis)都可以標註出來。如下面**所示,

from pyhanlp import *

string = "錫林郭勒**應急保障中心"

words = [_.tostring() for _ in hanlp.segment(string)]

print(words) # ['錫林郭勒/ns', '**/n', '應急/vn', '保障/vn', '中心/nis']

3.1 載入地區名稱

from pyhanlp import *

import xlrd

filt_list = ['ns','nis']

def get_province_city():

xls_path = './tools/province.xls'

print(xls_path)

book = xlrd.open_workbook(xls_path)

sheet = book.sheets()[0]

name_ = list()

for r in range(1, sheet.nrows):

name = sheet.cell(r, 1).value

temp = get_keyword(name)

if temp:

# 獲取中國34個省級行政區及其下屬的地級市

city_list = get_province_city()

3.2 實現keyword類的兩個字串處理方法

class keyword:

#判斷是否為英文,如果公司名稱裡有英文,則直接把英文首字母作為logo內容

def is_english_char(self,ch):

if ord(ch) not in (97, 122) and ord(ch) not in (65, 90):

return false

return true

# 公司名稱有的帶有書名號和括號,需要預處理。同時在預處理階段去掉地區。

def process_word(self,word):

res = word.replace('《', '').replace('》', '')

index1 = res.find('(')

index2 = res.find(')')

temp = res[index1:index2 + 1]

res = res.replace(temp, '')

flag1 = res[:2]

flag2 = res[:3]

flag3 = res[:4]

if flag3 in city_list:

res = res.replace(flag3, '')

elif flag2 in city_list:

res = res.replace(flag2, '')

elif flag1 in city_list:

res = res.replace(flag1, '')

return res

def extract(self,name):

if self.is_english_char(name[0]):

final_key = name[0]

return final_key

final_key = false

name_type_dict = dict()

name = self.process_word(name)

words = [_.tostring() for _ in hanlp.segment(name)]

filt_key = list()

key_list = list()

for word in words:

key, flag = word.split('/')

name_type_dict[key] = flag

if flag in filt_list:

for i in filt_key:

key_list.remove(i)

if len(key_list) == 1: # 候選詞列表只有乙個單詞,看其長度是否<=4

if len(key_list[0]) <= 4:

final_key = key_list[0]

else:

final_key = self.extract_two(key_list[0])

# 當候選詞列表只有兩個詞語

elif len(key_list) == 2:

# 按設定規則處理

else: # 候選詞列表長度大於等於3

# 按設定規則處理

if not final_key or len(final_key)==1:

for item in name_type_dict.keys():

final_key = item

break

return final_key

3.4 當過濾之後的候選詞個數為2時

# 是英文,則用該英文作為返回值

k1 = key_list[0]

if name_type_dict[k1] == 'nx':

final_key = k1

# 如果第乙個不是英文

else:

k2 = key_list[1]

if len(k1) == 1:

if len(k2) == 1:

final_key = k1 + k2 # 兩個單字,只能相加。

elif len(k2) == 2:

final_key = k1 + k2 # 三個字

elif len(k2) == 3:

final_key = k1 + k2 # 四個字

else:

temp = k1 + k2

final_key = temp[:4]

elif len(k1) == 2:

if len(k2) == 1 or len(k2)==2:

final_key = k1 + k2

else:

temp = k1 + k2

final_key = temp[:4]

# 如果第乙個值長度為3,則最後的詞長度為3or4.

elif len(k1) == 3:

if len(k2) ==1:

final_key = k1 + k2

else:

if 'n' in name_type_dict[k1] :

final_key = k1

else:

final_key = k1 + k2[0]

elif len(k1) == 4:

final_key = k1 # 長度為四,則直接使用k1

else:

final_key = self.extract_two(k1)

3.5 當過濾之後的候選詞個數大於等於3時

# 當候選詞大於3個。

else:

if not key_list: # 沒有候選詞

pass

else:

k1 = key_list[0]

if name_type_dict[k1] == 'nx':

final_key = k1

else:

k2 = key_list[1]

k3 = key_list[2]

if len(k1) == 1: # 如果第乙個單詞長度為1.則最終結果為3或者4.

if len(k2) == 1:

if len(k3) ==1 or len(k3)==2:

# 當第三個為1或者2,最終長度為3或者4

final_key = k1 + k2 + k3

else: # 最終長度為4

final_key = k1 + k2 + k3[:2]

elif len(k2) == 2:

if len(k3) >= 2:

final_key = k1 + k2

else:

final_key = k1 + k2 + k3

elif len(k2) == 3:

final_key = k1 + k2

elif len(k1) == 2: # 第乙個單詞長度為2

if len(k2) == 1:

if len(k3) == 1:

final_key = k1 + k2 + k3

else:

final_key = k1 + k2

elif len(k2) == 2:

final_key = k1 + k2

else:

temp = k1 + k2

final_key = temp[:4]

elif len(k1) == 3:

if 'n' in name_type_dict[k1] :

final_key = k1

else:

if len(k2) == 1:

final_key = k1 + k2

else:

final_key = k1 + k2[0]

elif len(k1) == 4:

final_key = k1

else:

final_key = self.extract_two(k1)

公司名稱字尾 Inc Co ,Ltd

inc.incorporated co.ltd.連在一起為company limited,就是 或者有限責任公司。co 後面的 是英文中表示詞語短縮省略的符號,而 co.後面的 則是用來區分前後兩個詞的分離號 乙個公司如果上市或者比較大了,都會在公司名稱的字尾上加inc.llc.全拼是limited...

正則匹配公司名稱

x x da za z u 上面是php匹配,變為js匹配很簡單 u4e00 u9fa5 da za z gi因為有的公司帶有 括號 和 或 數字 英文本元,比如tcl,多奈鞋業 中國 北京奇虎360科技 香港等公司命名可能帶有 但是,企業名稱登記管理規定 這部法規是1991年才首次頒布的,即使是在...

取文字 這樣取公司名稱,核名秒通過!公司取名須知

公司名稱核准是註冊公司環節是 很至關重要的環節,假若這環節就失敗這樣會很大程度影響申請時長。公司名稱核准,簡單點的講那就是公司企業在註冊公司的之時必須要起個好名字,比如說你剛寶寶出生讓你起個好名字。企業也是一樣,在你申請一家公司企業前,你務須要先想到乙個好的公司名字。因為新公司的各稱好似第一面旗織,...