Sunday, January 11, 2009
Ngôn ngữ lập trình COBOL
Complier :
http://www.infogoal.com/cbd/cbdcmp.htm
Course của Đại học Michigan - Dearborn.
CIS 102 COBOL Programming Language
http://www.engin.umd.umich.edu/CIS/c...es/cis102.html
CIS 295 COBOL Programming Language
http://www.engin.umd.umich.edu/CIS/c...es/cis295.html
Cobol Tutorial Page
http://www.csis.ul.ie/cobol/
Còn nhiều tại
http://www.engin.umd.umich.edu/CIS/c...bol/cobol.html
Tuesday, December 16, 2008
Bóc tách nội dung từ trang Web
+ Phân tích mã HTML
+ So sánh khung mẫu
+ Xử lí ngôn ngữ tự nhiên
Cũng giống như Google News, hệ thống khai thác và tổng hợp nội dung có nhiệm vụ khai thác, tổng hợp, lưu trữ rồi phát hành lại tới người dùng. Wrapper nhận cấu hình đầu vào của một website (tin tức, nhật ký trực tuyến, ...) tiến hành bóc tách, tổng hợp chủ đề liên quan, lưu trữ trong database và phát hành lại tới người đầu cuối. Nội dung được bóc tách toàn vẹn, sạch sẽ và được tổng hợp từ nhiều nguồn khác nhau giúp người đọc có thể theo dõi, kiểm soát, tìm kiếm, biên soạn, lưu trữ, xuất bản,...
Khó khăn của bài toán là không phải toàn bộ nội dung của trang web đều cần thiết. Nếu chỉ đơn thuần loại các chuỗi script HTML thì nội dung lọc được sẽ rất nhiều lỗi rác không cần thiết. Ví dụ: phần thông tin quảng cáo, tin mới cập nhật, nội dung tin ngắn, menu... những nội dung như thế này thường cần phải bỏ qua trong quá trình bóc tách nội dung chính của trang web
1. Phân tích mã HTML
Hiện nay, VietSpider[1] của tác giả Nhữ Đình Thuần là một phần mềm bóc tách đúng nghĩa, chúng truy xuất trực tiếp vào nội dung toàn diện rồi tiến hành bóc tách. Sau đó những đặc tả dữ liệu (meta data) được xây dựng tự động trên nền nội dung đã bóc tách. Sau quy trình khai thác, nội dung sẽ trở thành độc lập với website nguồn, được lưu trữ và tái sử dụng cho những mục đích khác nhau.
Hình 1: Hệ thống bóc tách nội dung của VietSpider
Hệ thống của tác giả Nhữ Đình Thuần cũng đã cài đặt mô hình khai phá dữ liệu cho phép tổng hợp những nội dung liên quan. Xây dựng mô hình topic tracking cho phép theo dõi các sự kiện đang diễn ra theo tuần tự thời gian. Mô hình thuật toán được cài đặt là LOR (Linked Object Representation) với sự hỗ trợ của kỹ thuật Stopping trong phân tách nội dung. Giải pháp đánh chỉ mục (indexing) và tìm kiếm (searching) được sửa đổi và cải tiến từ một giải pháp nguồn mở nổi tiếng của Apache là Lucene Search.
Tuy nhiên, hạn chế của chương trình là cần phải xác định đường dẫn đến vùng nội dung chính trước khi bóc tách đối với mỗi domain. Như thế sẽ khó khăn nếu hệ thống khi gặp phải một trang web mới hoàn toàn.
2. So sánh khung mẫu
Phương pháp rút trích thông tin bằng cách so trùng hai trang web được xây dựng trên nền tảng nhận dạng mẫu được tác giả Trang Nhật Quang thực hiện trong việc rút trích nội dung nhằm cung cấp tin tức trên trang web hành chính [5]. Phương pháp này cho phép so khớp trang web cần rút trích với một trang web mẫu để xác định khung trình bày chung cho cả hai trang web cần rút trích, từ đó đi đến rút trích ra nội dung nằm trong phần được xác định chứa nội dung chính trên trang mẫu.
(a) (b) (c)
Hình 2: Mô hình bóc tách nội dung chính bằng so sánh khung mẫu
(a) Trang web cần rút nội dung chính
(b) Trang web khung mẫu (được xác định trước)
(c) Nội dung chính sau khi so khớp và rút được
Phương pháp này không đòi hỏi người sử dụng phải biết về ngôn ngữ xây dựng wrapper hay phải thay đổi wrapper khi cách trình bày thay đổi do trang web mẫu có thể lấy trực tiếp từ trang chủ và có cùng cách trình bày với trang cần rút trích. Tuy nhiên, đối với mỗi domain, cần phải xác định được một trang web làm mẫu cho những trang khác. Đây cũng là một hạn chế trong quá trình tự động hóa xác định nội dung chính của web.
3. Xử lý ngôn ngữ tự nhiên
Đây là phương pháp sử dụng các kỹ thuật xử lý ngôn ngữ tự nhiên được áp dụng cho những tài liệu mà thông tin trên đó thường không có một cấu trúc nhất định (như truyện). Các kỹ thuật này xem xét sự ràng buộc về mặt cú pháp và ngữ nghĩa để nhận dạng ra các thông tin liên quan và rút trích ra thông tin cần thiết cho các bước xử lý nào đó. Các công cụ sử dụng phương pháp này thích hợp cho việc rút trích thông tin trên những trang web có chứa những đoạn văn tuân theo quy luật văn phạm. Một số công cụ sử dụng phương pháp xử lý ngôn ngữ tự nhiên trong việc bóc tách nội dung như: WHISK hay RAPIER
Đặc trưng của phương pháp này còn phụ thuộc vào ngôn ngữ trên trang web cần được bóc tách nội dung. Đối với tiếng Việt có đề tài “Rút trích nội dung chính trang web dựa vào ngữ cảnh của trang web” của tác giả Hồ Anh Thư [3]. Đề tài tiến hành xác định nội dung chính của trang web dựa vào ngữ cảnh của nội dung, sau đó tiến hành rút trích bản tóm tắt của nội dung dựa trên phương pháp chọn câu trội. Việc xác định nội dung chính được thực hiện qua các bước:
- Loại bỏ thông tin định dạng
- Tách vùng nội dung dựa vào cấu trúc, mà cụ thể là sử dụng tag TABLE để tách vùng văn bản.
- Xác định mức độ liên quan về mặt nội dung để ghép nối các vùng kế cận với nhau.
- Chọn vùng văn bản có kích thước lớn nhất để xử lý tiếp
Tuy nhiên phương pháp này có một số nhược điểm sau:
- Tùy theo mức độ xử lý mà quá trình bóc tách phụ thuộc nhiều hoặc ít vào ngôn ngữ xử lý
- Phương pháp dựa vào độ đo tương tự giữa các vùng để ghép nối từ đó xác định nội dung chính. Những nếu các nội dung chính được chia trên nhiều table với các thông tin ít liên quan đến nhau thì sẽ khó khăn trong việc mở rộng và xác định vùng nội dung chính chứa tất cả chúng.
- Trường hợp thông tin trong một vùng (table) quá ít, sẽ ảnh hưởng đến quá trình tính tương đồng và mở rộng vùng nội dung chính.
4. Kết hợp phân tích mã và xử lý ngôn ngữ tự nhiên
Giải pháp thực hiện của tôi cũng dựa trên phương pháp bóc tách nội dung nhờ vào phân tích mã HTML theo các bộ mã nguồn HTMLParser của dự án Majestic-12[2] để tạo thành cây Document Tree. Từ đó áp dụng các công cụ và kỹ thuật ngôn ngữ để quyết định phần nội dung chính.
Phương pháp này dựa trên tiền đề là trang web đã được phân tích các tag HTML để xây dựng nên cây Document Tree. Từ cây này chúng ta đi xác định node nào ở trên cây chứa nội dung chính của trang WEB. Phương pháp cho điểm các node dựa vào kết quả xử lý ngôn ngữ tự nhiên trên nội dung mà nó chứa bên trong đó.
Một số quy tắc cho điểm được áp dụng:
+ Chỉ cho điểm cho những NODE có tag là TEXT. Vì chỉ có những node này mới là node chứa nội dung thực sự. Các node khác tổng hợp từ node này.
+ Cho điểm NODE TEXT dựa vào số câu của nội dung chứa bên trong node đó. Càng nhiều câu thì node có điểm càng cao.
+ Node được cho điểm phải chứa tối thiểu một đoạn văn. (Tuy nhiên việc xác định như thế nào là một đoạn vẫn chỉ là một heuristic)
+ Điểm của các node cha sẽ bằng điểm của các node con cộng lại.
Xác định node nội dung: Để xác định node nội dung chính mà không chứa các nội dung không cần thiết chính là đi xác định node sâu nhất trên cây có điểm cao nhất. Bằng việc xác định node nội dung như vậy, hệ thống có thể tự động xác định nội dung trang web mà không cần biết trước khung mẫu cũng như nguồn gốc của trang web đó.
Mọi tham khảo vui lòng ghi rõ nguồn gốc:
Ngô Quốc Hưng, 2008, "Tìm kiếm tự động văn bản song ngữ Anh-Việt từ Internet", Luận văn Thạc sỹ, tr.5-10, ĐH KHTN TP.HCM
Monday, September 22, 2008
Standard Template Library
STL đã được nhiều tổ chức, hãng phần mềm mở rộng và phát triển; trong đó đáng kể nhất phải kể đến phiên bản SGI-STL của Silicon Graphics và STL Port (hiện đã được tích hợp trong Borland C++ Builder 6). Cũng xuất phát từ ý tưởng của STL (đồng thời cũng sử dụng chính thư viện này làm nền tảng), một số thư viện standard template khác ra đời phục vụ các lớp ứng dụng đặc thù hơn, như thư viện cho ma trận - MTL (trường đại học Notre Dame - Pháp) hay thư viện cho đồ thị - GTL (trường đại học Passau - Đức).
STL có một số thành phần cơ bản sau: containers, iterators, algorithms, và các functors. Trong đó, containers đóng vai trò như là các kiểu dữ liệu, bao gồm: vector, list, deque ; set, multiset, map, multimap, hash_set, hash_multiset, hash_map, hash_multimap, bitset và valarray.
Sau đây là một số địa chỉ tham khảo về STL:
- SGI STL: http://www.sgi.com/tech/stl/
- STL Port: http://www.stlport.org/
- STL introduction: http://en.wikipedia.org/wiki/Standard_Template_Library
- Matrix Template Library: http://osl.iu.edu/research/mtl/
- Graph Template Library: http://www.infosun.fmi.uni-passau.de/GTL/index.html
- Alexander Stepanov Inteview:
http://www.stlport.org/resources/StepanovUSA.html
http://www.sgi.com/tech/stl/drdobbs-interview.html
- Tutorial:
http://www.infosys.tuwien.ac.at/Research/Component/tutorial/prwmain.htm
http://www.cs.rpi.edu/~musser/stl-book/
Thursday, September 4, 2008
Phần mềm chuyển PDF sang Word
Một vài thông tin về sản phẩm:
PDF2Word (PDF to Word) xuất mọi chữ, hình ảnh và các nội dung khác từ bất kỳ file PDF nào sang định dạng MS Word(RTF or Word), từ đó bạn có thể chỉnh sửa và sử dụng lại nội dung file PDF. PDF2Word (PDF to Word) giữ gìn nguyên bản các chữ, layout, ảnh khi chuyển đổi.
PDF2Word (PDF to Word) là phần mềm ứng đụng độc lập và không cần Microsoft Word, Adobe Acrobat, hay thậm chí cả Acrobat Reader.
Serial :
Code:
1. 7441-62252-5V331-449
2. 5667-39244-6V631-485
3. 3886-89993-9V131-676
4. 9243-86464-8V131-249
5. 7478-71447-6V231-658
Rất tiếc khi một tín đồ CNTT đang làm phần mềm nhưng lại góp phần cung cấp key cho mọi người. Tuy nhiên vì tính ứng dụng của công việc hỗ trợ cho các bạn "tay ngang" sử dụng máy tính , CNTT để hỗ trợ tốt hơn cho công việc của mình.
Tuesday, August 26, 2008
ThreadPool
Lân la trên mạng thì được bác Google mách nhỏ là dùng ThreadPool thì có thể theo một số ví dụ đơn giản có sẵn từ đây. Thế là lại lần mò làm theo thôi. Cũng nhanh và ok lắm. Nhìn chuyên nghiệp và nhanh hơn hẳn phương pháp tuần tự trước.
Khai báo một phương thức chứa mã lệnh cần thực thi; phương thức này phải trả về void và chỉ nhận một đối số. Sau đó, tạo một thể hiện của ủy nhiệm System.Threading.WaitCallback tham chiếu đến phương thức này. Tiếp tục, gọi phương thức tĩnh QueueUserWorkItem của lớp System.Threading.ThreadPool, và truyền thể hiện ủy nhiệm đã tạo làm đối số. Bộ thực thi sẽ xếp thể hiện ủy nhiệm này vào hàng đợi và thực thi nó khi một tiểu trình trong thread-pool sẵn sàng.
Nếu ứng dụng sử dụng nhiều tiểu trình có thời gian sống ngắn hay duy trì một số lượng lớn các tiểu trình đồng thời thì hiệu năng có thể giảm sút bởi các chi phí cho việc tạo, vận hành và hủy các tiểu trình. Ngoài ra, trong một hệ thống hỗ-trợ-đa-tiểu-trình, các tiểu trình thường ở trạng thái rỗi suốt một khoảng thời gian dài để chờ điều kiện thực thi phù hợp. Việc sử dụng thread-pool sẽ cung cấp một giải pháp chung nhằm cải thiện tính quy mô và hiệu năng của các hệ thống hỗ-trợ-đa-tiểu-trình.
Có từng làm mới thấy rằng: ThreadPool đảm bảo được yêu cầu: chỉ cần cung cấp hàm thực hiện, hệ thống sẽ tự động gọi chạy. Chúng ta có thể cung cấp tham số quy định số tiểu trình chạy tối đa tại một thời điểm. Tuy nhiên, hạn chế của ThreadPool lại là các tiến trình khi đã cung cấp cho ThreadPool tức là đã ngoài tầm kiểm soát, không thể Abort / Pause hay Resume gì nữa, mà nó sẽ tự động Start theo tình trạng của hệ thống. Điểm này chính là hạn chế của ThreadPool, nên nếu muốn nó chạy hiệu quả thì chúng ta cần bổ sung một Thread thường trực, cung cấp thread cho ThreadPool, và trong các hàm xử lý, cần thêm một số điều kiện thoát khi mà môi trường thay đổi.
Mốt số đặc điểm của ThreadPool:
+ Tất cả các phương thức của ThreadPool đều là hàm tĩnh, truy cập thông qua lớp.
+ Các Thread đưa vào ThreadPool không bị giới hạn trong một lớp / đối tượng.
+ ThreadPool tự thân không có hàm Stop / Abort dành cho các Thread nó chứa.
+ Có thể quy định số tiểu trình chạy đồng thời thông qua hàm ThreadPool.SetMaxThreads.
Tham khảo:
[C#] Thực thi phương thức với thread-pool
C# Tutorial - Using The ThreadPool
ThreadPool Class
Monday, August 25, 2008
ExecuteExternalFile
[VC++ / MFC]
void ExecuteExternalFile(const char* csExecuteCommand)
{
STARTUPINFO sInfo;}
ZeroMemory(&sInfo,sizeof(sInfo));
sInfo.cb = sizeof(sInfo);
PROCESS_INFORMATION pInfo;
ZeroMemory(&pInfo,sizeof(pInfo));
sInfo.cb = sizeof(sInfo);
//Create the process here.
CreateProcess(0, //LPCWSTR lpszImageName,(char*)csExecuteCommand, //LPCWSTR lpszCmdLine,);
0, //LPSECURITY_ATTRIBUTES lpsaProcess,
0, //LPSECURITY_ATTRIBUTES lpsaThread,
TRUE, //BOOL fInheritHandles,
NORMAL_PRIORITY_CLASS|CREATE_NO_WINDOW, //DWORD fdwCreate,
0, //LPVOID lpvEnvironment,
0, //LPWSTR lpszCurDir,
&sInfo,//LPSTARTUPINFOW lpsiStartInfo,
&pInfo//LPPROCESS_INFORMATION lppiProcInfo
// Wait until child processes exit.
WaitForSingleObject( pInfo.hProcess, INFINITE );
// Close process and thread handles.
CloseHandle( pInfo.hProcess );
CloseHandle( pInfo.hThread );
[C#.NET]
private static bool GetVieKeywords(string csExecuteFile, string csExecuteParam)
{
try
{Process proc = new Process();
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;proc.StartInfo.FileName = csExecuteFile;
proc.StartInfo.Arguments = csExecuteParam;
proc.Start();
proc.WaitForExit();
proc = null;}
catch (Exception)
{//Extract fail.
return false;}
return true;
}
Thủy cung thần tiên 08/2008
Sau 4 tuần setup hồ thủy sinh mới với cỏ Trân Châu, cỏ Nhật, Tiêu Thảo... thì bây giờ cũng đã có thành quả rồi. Rảnh rỗi viết về những gì nếm trải thú vui này cũng thú vị lắm.
Thursday, August 21, 2008
Những trang web song ngữ
1. Website Đại sứ quán Mỹ tại Việt Nam:
EN: http://vietnam.usembassy.gov/
VN: http://vietnamese.vietnam.usembassy.gov/
2. Thời báo kinh tế Việt nam
EN: http://www.vneconomy.com.vn/eng/
VN: http://vneconomy.vn/
3. VOANews
EN: http://www.voanews.com/english/portal.cfm
VN: http://www.voanews.com/vietnamese/
FR: http://www.voanews.com/french/
CH: http://www.voanews.com/chinese/
4. British Embassy
EN: http://www.britishembassy.gov.uk/servlet/Front?pagename=OpenMarket/Xcelerate/...
VN: http://www.britishembassy.gov.uk/servlet/Front?pagename=OpenMarket/Xcelerate/...
5. BBC
EN: http://www.bbc.co.uk/
VN: http://www.bbc.co.uk/vietnamese/
6. Viet magazine
EN: http://www.vps.org/sommaire_en.php3
VN: http://www.saigon.com/vietmag/
7. Du lịch VN
EN: http://www.vietnamtourism.com/e_pages/news/index.asp
VN: http://www.vietnamtourism.com/v_pages/news/index.asp
FR: http://www.vietnamtourism.com/f_pages/news/index.asp
JP: http://www.vietnamtourism.com/j_pages/news/index.asp
CH: http://www.vietnamtourism.com/c_pages/tourist/travel.asp
8. PhapLuat
EN: http://vbqppl3.moj.gov.vn/law/en/main_page
VN: http://vbqppl.moj.gov.vn
9. CDC
EN: http://www.bt.cdc.gov/
VN: http://www.bt.cdc.gov/vi/
FR: http://www.bt.cdc.gov/fr/
10. Influenza
EN: http://www.cdc.gov/flu/avian/
VN: http://www.cdc.gov/flu/vie/
11. Flu
EN: http://www.pandemicflu.gov/index.html
VN: http://vietnamese.pandemicflu.gov/pandemicflu/envi/24/_www_pandemicflu_gov/in...
12. HIV
EN: http://www.acas.org/treatment/engmap.html
VN: http://www.acas.org/treatment/vietmap.html
*** Others ***
Vietnamese Health http://nutrition.berkeley.edu/extension/vietnamese.health/
WHO
FR: http://www.who.int/csr/don/fr/index.html
EN: http://www.who.int/csr/don/en/index.html
13. Website chính phủ ViệtNam
EN: http://www.chinhphu.vn/pls/portal/url/page/vgp_en
VN: http://www.chinhphu.vn/vi
14. Trang tin ToQuoc của Bộ văn hóa, Thể thao và Du lịch
EN: http://www.toquoc.gov.vn/english/home.asp
VN: http://www.toquoc.gov.vn/vietnam/home.asp
15. Trang tin VietNamNet
EN: http://english.vietnamnet.vn/news/
VN: http://vietnamnet.vn/
16. Báo Kinh Tế Việt Nam
EN: http://www.ven.org.vn/home/switchLanguage?set_language=en&cur_lang=en
VN: http://www.ven.org.vn/home
17. Trang tin e-TinTuc
EN: http://e-tintuc.com/public.php?lang=english
VN: http://e-tintuc.com/public.php?lang=vietnamese
18. Trang tin tuc VNDaily.Net
EN: http://www.vndaily.net/english
VN: http://www.vndaily.net/
FR: http://www.vndaily.net/francais
JP: http://www.vndaily.net/japanese
CH: http://www.vndaily.net/chinese
19. Trang tin BOM
EN: http://www.bvom.com/news/english/home
VN: http://www.bvom.com/news/vietnam/home
Khai thác THNNews và THNOnline
[EN] http://www.thanhniennews.com
[VN] http://www.thanhnien.com.vn
Đây là hai trang tin tức với hai ngôn ngữ song song có khối lượng bài viết rất lớn từ năm 2002 (VN), 2004 (EN), tuy nhiên bài viết hai bên có thể là bản dịch của nhau, có thể chỉ là bản dịch của một tin từ báo khac. Vấn đề chúng ta khai thác dữ liệu này như thế nào.
Với tôi, tôi quan tâm đến những trang tiếng Anh và trang tiếng Việt tương ứng là trang nào, có thể nằm trong tên miền tiếng Việt [VN], cũng có thể là không (mà nó nằm ở một báo khác).
Các bước khai thác như:
- Collect dữ liệu bằng công cụ Crawler
- Sử dụng các cơ chế tìm kiếm, lọc và so sánh để tìm ra những cặp song song tưng ứng từ nguồn dữ liệu trên.
Saturday, August 16, 2008
Ngô Hưng
Ngô Hưng (chữ Hán phồn thể: 吳興區, chữ Hán giản thể: 吴兴区, âm Hán Việt: Ngô Hưng) là một quận thuộc địa cấp thị Hồ Châu, tỉnh Chiết Giang, Cộng hòa Nhân dân Trung Hoa. Quận này có diện tích 872 kilômét vuông, dân số 560.000 người. Mã số bưu chính của Ngô Hưng là 313000. Chính quyền nhân dân quận Ngô Hưng đóng ở số 493, đường Hồ Đông. Về mặt hành chính, quận Ngô Hưng được chia thành 6 nhai đạo, 6 trấn, 3 hương.
| Ngô Hưng thu tứ nhị thủ | Nghĩ về thu tại Ngô Hưng Đâu phải vì trăng tại suối Điều Vì rừng mây phủ bước cô liêu Bãi sông mưa gió xa xôi quá Thấy bạch tần mà nhớ Tương Tiêu Chiều xuống cá côn mơ miền nam Bến nước Điều Dương đã ngập tràn Gió thu núi cũ bao là nhớ Vương Tôn , mây lấp bước chân hoang Phan Lang dịch |
