Closed cnydo closed 1 year ago
Em để ý tên người (lowercased) mà chứa các từ thành phần có nghĩa thì không thể tokenize đúng cả tên được. Ví dụ như sau:
text = 'Á hậu trương mỹ nhân lấn sân điện ảnh' uts.word_tokenize(text, format='text') >>> 'á_hậu trương mỹ_nhân lấn_sân điện_ảnh' # expected 'á_hậu trương_mỹ_nhân lấn_sân điện_ảnh' text = 'đông nhi - ông cao_thắng chia_sẻ bí_quyết hôn_nhân' uts.word_tokenize(text, format='text') >>> 'đông nhi - ông cao_thắng chia_sẻ bí_quyết hôn_nhân' # expected 'đông nhi - ông_cao_thắng chia_sẻ bí_quyết hôn_nhân' text = 'huyền thoại lý tiểu long' uts.word_tokenize(text, format='text') >>>'huyền_thoại lý tiểu long' # expected huyền_thoại lý_tiểu_long text = 'ca sĩ đàm vĩnh hưng' uts.word_tokenize(text, format='text') >>> 'ca_sĩ đàm vĩnh_hưng' # expected 'ca_sĩ đàm_vĩnh_hưng'
Tokenizer của pyvi và vncorenlp cũng gặp khó khăn với lowercased name như trên.
Workarounds em đã thử:
text = 'Á hậu Trương Mỹ Nhân lấn sân điện ảnh' uts.word_tokenize(text, format='text') >>> 'Á_hậu Trương Mỹ_Nhân lấn_sân điện_ảnh'
text = 'Á hậu Trương Mỹ nhân lấn sân điện ảnh' uts.word_tokenize(text, format='text')
'Á_hậu Trương_Mỹ_nhân lấn_sân điện_ảnh'
text = 'huyền thoại Lý Tiểu Long' uts.word_tokenize(text, format='text')
'huyền_thoại Lý_Tiểu_Long'
text = 'ca sĩ Đàm Vĩnh Hưng' uts.word_tokenize(text, format='text')
'ca_sĩ Đàm_Vĩnh_Hưng'
@cnydo Thanks em đã report. Vấn đề này đúng là "kinh điển" trong NLP rồi
Anh kiểm thì thấy GPT-3.5 và GPT-4 cũng gặp vấn đề này
GPT-4
GPT-3.5
Em để ý tên người (lowercased) mà chứa các từ thành phần có nghĩa thì không thể tokenize đúng cả tên được. Ví dụ như sau:
Tokenizer của pyvi và vncorenlp cũng gặp khó khăn với lowercased name như trên.
Workarounds em đã thử:
text = 'Á hậu Trương Mỹ nhân lấn sân điện ảnh' uts.word_tokenize(text, format='text')
text = 'huyền thoại Lý Tiểu Long' uts.word_tokenize(text, format='text')
text = 'ca sĩ Đàm Vĩnh Hưng' uts.word_tokenize(text, format='text')