之前講過漢字注音問題,也發過關於拼音匹配問題,但是沒法處理多音字問題
例如:漢字:不能說的秘密
拼音:bu|fou nai|neng shuo|shui|yue de|di bi|mi mi
當我們輸入:bunengshuodebimi,bunegnshuodemimi,bnsdmm,bnengyuedebimi,buneshdimmi等都可以匹配成功
這裡很多字都有多音字,要判斷出每個字的確切的讀音比較困難。這裡我們就對每一種讀音都進行匹配
思路:這裡對每個字的拼音首字母進行匹配
每個字的首字母為: b|f n s|y d b|m m
這裡假設模式串為:nengshuodemimi (假設為target)
在首字母中找到 target[0],匹配後面的首字母
然後找到匹配的首字母,遍歷一遍拼音,看是否包含模式串,如果包含,則返回真
說的不是很清楚,看**把
先發乙個獲取漢字拼音的類,拼音資料檔案在後面
public接下來是匹配演算法static
class
pinyinhelper}}
private
static
string getpinyin(char
ch)
public
static
string getpinyin(string
hanzis)
]));
return
builder.tostring();
}//是否是漢字
private
static
bool ischarchinese(char
c)
return
false
; }
}
private演算法有些不足,大家有什麼建議不bool isfirstpinyincontains(string pinyin, char
ch)
}return
false
; }
private
bool ispinyincontaintarget(string pinyins, string target, int start, int
end)}}
}return
false
; }
private
bool pinyinmatch(string pinyins, string
target)
}end =j;
//判斷從start到end的拼音是否包含target
if(ispinyincontaintarget(pinyins, target, start, end))}}
return
false
; }
拼音資料檔案:
漢字 包括多音字 轉換拼音和簡碼的處理
將漢字轉換成拼音,由於漢字有多音字,所以轉換拼音是讓人很頭疼的乙個問題,我想到了乙個解決這個問題的辦法,就是將每個字的音節都讀出來,然後進行拼音重組,這樣總有一組拼音是正確的,然後在根據全文搜尋技術,就能找到想要的記錄了,本人不才自己寫了個方法,貼出了,跟大家分享一下,希望多批評指正!using s...
vue整合漢字轉拼音(附多音字解決方案)
1 結果顯示 輸出首字母 n 輸出拼音 nihaoma 2 js呼叫 import hanzitopinyin from hanzitopinyin export default class message extends vue 3 js實現 import vue from vue export ...
33 字元匹配演算法
33 實現乙個挺高階的字元匹配演算法 給一串很長字串,要求找到符合要求的字串,例如目的串 123 1 3 2 12 3 這些都要找出來 其實就是類似一些和諧系統。參考這題的真正意思就是,給你乙個目標串,如 123 只要乙個字串裡面同時包含1 2和3,那麼這個字元 串就匹配了。系統越和諧,說明錯殺的可...