Thảo luận Từ điển công nghệ:Autolink/Javascript

Từ Từ điển công nghệ
Phiên bản vào lúc 02:10, ngày 17 tháng 10 năm 2007 của Jcisio (Thảo luận | đóng góp)

Vấn đề mở rộng rất đáng được quan tâm. Liệu cấu trúc hiện nay của script cho phép sử dụng danh mục khoảng 1000 từ mà không làm chậm máy tính hay không? Thông tin cần biết: tất cả các từ được ghép chung vào một reg exp bằng phép tính |, do đó chuỗi này có chiều dài lên đến cả chục ngàn kí tự.

Không biết có thuật toán nào tốt hơn không?

Thêm kí tự phân cách từ (xong)

Hiện nay, một từ được phân cách bởi các kí tự: " ", ".", ",", "\"", "'", "-"

Đề nghị thêm kí tự phân cách: "/"

Bug: http://vntelecom.org/diendan/showthread.php?p=1191#post1191

Xem chỗ: WEP/WPA (chỉ đặt link đến WPA, không có link đến WEP)

Đã bổ sung "/" --Jcisio 02:02, ngày 11 tháng 10 năm 2007 (PDT)

---

Lỗi "link nằm trong link" (xong)

ở trang này: http://thongtincongnghe.com/article/1525 có một link là "WiMax chỉ là công nghệ được thổi phồng", trong đó chữ 'WiMax' lại được nhận diện ở TDCN (có gạch dưới), nhưng không thể link đến TDCN được.

Giải pháp đề nghị: không parsing bên trong một link.

Lỗi này đã được biết đến khá sớm, tuy nhiên vẫn để vậy. Lí do là sau này thay vì là link thông thường mình có thể đổi thành link đặc biệt, click vào nó hiện định nghĩa vắn tắt trong một ô nhỏ nhỏ thay vì mất công load nguyên trang TDCN. Một phần khác là vì lười :P --Jcisio 00:45, ngày 14 tháng 10 năm 2007 (PDT)
Thông tin đây: đây còn là cách hành xử của mỗi trình duyệt. Firefox không mở link đến TDCN nhưng Opera thì có (IE chưa test được).--Jcisio 00:51, ngày 14 tháng 10 năm 2007 (PDT)
Đã sửa trong phiên bản hôm nay. Bỏ qua các thuật ngữ nằm trong các thẻ: /script|style|textarea|a|h\d/ --Jcisio 03:25, ngày 16 tháng 10 năm 2007 (PDT)

Lỗi "link đến cụm thuật ngữ thay vì từng từ trong cụm từ" (xong)

- Ví dụ "IP PBX" là một thuật ngữ chứ không phải hai thuật ngữ riêng biệt. - "IEEE 802.16" là một thuật ngữ chứ không phải là 2 thuật ngữ riêng biệt. - Ví dụ "triple DES" là một thuật ngữ chứ không phải chỉ link đến DES ( trường hợp này hơi khó nhỉ). --Nvqthinh 02:24, ngày 16 tháng 10 năm 2007 (PDT)

Cái này chắc phải tìm người rồi ngồi bàn tính giải thuật, dùng cái nào kiểu "greedy match" thì sẽ ra thuật ngữ cụ thể thay vì thuật ngữ chung. Cần chọn thuật toán và cấu trúc dữ liệu sao cho: 1/ thời gian xử lí nhanh nhất 2/ dữ liệu tải về (danh sách mục từ) là nhỏ nhất.--Jcisio 02:58, ngày 16 tháng 10 năm 2007 (PDT)
Hiện tại đã sửa một phần lỗi này, dùng thuật toán cũ. Các từ dài được xem xét trước, rồi xem xét tiếp các từ ngắn hơn. --Jcisio 06:38, ngày 16 tháng 10 năm 2007 (PDT)
Đã cập nhật lại autolink.js, hiện không biết độ phức tạp của việc xử lí regular expression nên không rõ khi có vài ngàn mục từ tốc độ sẽ thay đổi ra sao. Sẽ giải quyết sau.--Jcisio 14:58, ngày 16 tháng 10 năm 2007 (PDT)
Hiện tại Nam dùng thuật toán search matching nào thế? Khi matching thì xem TDCN là pattern hay ngược lại? --Nvqthinh 23:47, ngày 16 tháng 10 năm 2007 (PDT)
TDCN là pattern. Xây dựng pattern theo kiểu (word1|word2|...|wordn) rồi đưa cho regular expression nó tìm trong web thay vì implement các thuật toán tìm kiếm riêng trên javascript. Độ phức tạp của pattern trên có lẽ là tuyến tính O(MN) hoặc cùng lắm thì O(Mlg(MN)), M là số từ của TDCN.--Jcisio 02:10, ngày 17 tháng 10 năm 2007 (PDT)