Tag Archives: xử lí ngôn ngữ


Sắp xếp danh sách trong tiếng Việt bằng PHP


Thú thực với các bác là cả đời mình, em chưa bao giờ nghiên cứu một thuật toán nào về sắp xếp cả (vì một thằng khối C như em thì chỉ nghe đến “thuật toán” là đã hãi rồi). Bình thường thì, khi có nhu cầu sắp xếp, em dùng sort. Cứ echo input | sort > output, thế là xong! Nhưng giờ thì phải dùng PHP. Thực ra thì cũng có thể dùng tham số SORT_LOCALE_STRING, nhưng có phải máy chủ nào cũng có phần locale tiếng Việt ngon lành đâu.

Siêu trâu bò lợn gà


Về lí thuyết, tiếng Việt có bao nhiêu âm tiết ở dạng chữ viết? Câu hỏi vớ vẩn này thỉnh thoảng lại làm lắm kẻ động lòng… Bây giờ kết hợp tất cả các “âm vị” ở dạng chữ viết, cho vào một danh sách. Sau đó tách danh sách to đó ra thành các danh sách nhỏ theo 4 mô hình vần. Từ đó ngồi nghĩ ra các luật để “trừ khử” dần các âm tiết không thể tồn tại.

Em fix my brain


Trong khi mọi người vui vẻ về quê hoặc đi du lịch thì em phải ngồi nhà cố nuốt chửng mớ lí thuyết ngôn ngữ học chán chết. Cứ tưởng là dễ ăn, hoá ra toàn những bài học thuộc lòng, mà em thì xưa nay có trí nhớ cực tồi. Làm gì em cũng phải tra tra cứu cứu. Dù sao thì cũng phải cố mà thi cho xong. Em cũng biết vậy, cũng thử cố mà nhai mà nuốt. Nhưng quả thực là em thấy ngán quá chừng. Ngán đến mức em lại phải thả trâu bò ra […]

Hoan hô thông tư 60


Chả phải đợi đến 24h ngày 05/12, mà tầm hơn 20h đã đơ ra như thế này. Tốt quá (nhưng lúc ấy đang buff, kể ra cũng tiếc 2 lọ MP :P)! Khởi động Linux. Mới cài FC6. Lúc mới cài thì chạy ngon. Nhưng chả hiểu sao hôm nọ “ụp đất” bằng yum thì nó thông báo một tin rất đau buồn là “kdeinit failed to start”. Thôi, đã thế thì ông dùng Gnome. Mà mấy hôm nữa thì Gnome cũng nghỉ cho khoẻ để nhường chỗ cho iceWM.

Tạo danh sách đối chiếu chính tả


#! /bin/sh # Trường hợp CH – TR # Lấy 'LIST' (danh sách các âm tiết) ở đây: echo 'Đang tạo danh sách các âm tiết…' egrep "^ch" LIST > ch.txt egrep "^tr" LIST > ch.txt echo 'Đang tạo danh sách tạm…' sed -e 's/^ch//g' -e 's/$/_ /g' ch.txt > tmp.txt sed -e 's/^tr//g' -e 's/$/__ /g' tr.txt >> tmp.txt # Sắp xếp (sau khi đã cập nhật locale: http://forum.vnoss.org/viewtopic.php?id=1948) sort tmp.txt > CH-TR.txt echo 'Tạo các cặp' sed -r -e 's/^(.*)__ $/\\|tr\\1/g; s/^(.*)_ $/\\|ch\\1\\|/g' -i CH-TR.txt sed -e :a -e '/$/N;s/\\n//g; ta' -i CH-TR.txt sed -r -e 's/\\|ch/\\nch/g' -i […]

“Regex Spellcheck” for Vietnamese


“Regex Spellcheck” (step 1) (ch|gh|kh|ngh|ng|nh|p|ph|th|tr|b|c|d|đ|g|h|gi|k|l|m|n|q|r|s|t|v|x)? ( ( [uo] )? ( ( [aàảãáạăằẳẵắặâầẩẫấậeèẻẽéẹêềểễếệiìỉĩíịoòỏõóọôồổỗốộơờởỡớợuùủũúụưừửữứựyỳỷỹýỵ] ) | ( y[aàảãáạêềểễếệ] ) ) | ( ia|ìa|ỉa|ĩa|ía|ịa|iê|iề|iể|iễ|iế|iệ|ưa|ừa|ửa|ữa|ứa|ựa|ươ|ườ|ưở|ưỡ|ướ|ượ|ua|ùa|ủa|ũa|úa|ụa ) ) ( (i|o|u|y|m|n|ng|nh|p|t|c|ch)? )