











Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
Báo cáo thực tập Đại học Xây dựng.
Typology: Lecture notes
1 / 19
This page cannot be seen from the preview
Don't miss anything!
----o0o----
Giảng viên hướng dẫn: Phạm Hồng Phong Hà Nội, 1 tháng 3 năm 202 3
Mục lục I. Giới thiệu. II. Đơn vị thực tập - Công ty Cổ phần Vật giá Việt Nam. III. Quy trình thực tập. IV. Dự án - Tổng quan về dự án. V. Khoa học máy Tính - Ứng dụng trong dự án.
Kèm theo đó, hàng tuần cũng có buổi họp training kiến thức chung cho toàn công ty, giúp mọi người trao đổi kiến thức, cập nhật các công nghệ mới, đồng thời giúp mọi người - đặc biệt là thực tập sinh trau dồi thêm kỹ năng thuyết trình, viết báo cáo. Đặc biệt trong giai đoạn cuối, có rất nhiều điều mà chỉ có ở môi trường doanh nghiệp, được trải nghiệm thực tế thì mới có thể tiếp thu và học hỏi được - những điều mà chúng ta khó có thể tìm thấy được trong môi trường giảng đường. Sau khi hoàn thành quy trình thực tập, cá nhân thực tập sinh sẽ được cân nhắc để trải nghiệm, tham gia vào dự án thực tế của công ty, trực tiếp xây dựng sản phẩm đến tay người dùng và vận dụng toàn bộ kiến thức đã được xây dựng trong giai đoạn nghiên cứu - học tập. IV. Dự án - Tổng quan về dự án. Bên cạnh các dự án được nêu ở mục II, với vị trí là một thực tập sinh tôi đã may mắn được tham gia vào xây dựng và phát triển một số dự ác khác. Tiêu biểu và là dự án tôi được tham gia nhiều nhất trong quá trình thực tập chính là: Dictbox.co - một dự án về từ điển với lượng dữ liệu, từ khóa cực kì lớn, hiện đã hỗ trợ nhiều loại từ điển, phục vụ nhiều ngôn ngữ như:
Gợi ý các từ liên quan:
V. Khoa học máy Tính - Ứng dụng trong dự án.
Đối với 1 dự án về từ điển, vấn đề cốt lõi đó chính là dữ liệu chuẩn xác. Dữ liệu phải được xử lý kỹ càng, chắt lọc và tạo độ tin cậy trước khi được hiển thị đến cho người dùng. với khối lượng dữ liệu lớn, yêu cầu độ chính xác cao bắt buộc dự án phải sử dụng những công nghệ tốt, hiệu quả và phù hợp với bài toán đặt ra. Và bài toán đặt ra ở đây là: đối với dữ liệu đầu vào, từ nhiều nguồn với các độ tin cậy khác nhau, làm sao để đảm bảo được tính chính xác về mặt ngôn ngữ. Có rất nhiều dữ liệu được phân loại sai ngôn ngữ gây ra không chính xác về ngữ nghĩa, cú pháp,... Vấn đề phân loại ngôn ngữ cho văn bản là một vấn đề rất khó giải quyết bằng các biện pháp thông thường như “regular expression”. Đặc biệt là với các ngôn ngữ sử dụng chung bảng chữ cái, có sự tương đồng trong cú pháp. Là một sinh viên Khoa học Máy tính, đối mặt với bài toán này hoàn toàn có thể đặt ra phương án giải quyết đó chính là sử dụng các mô hình phân loại ngôn ngữ - “Language identification”. Tuy nhiên, với một môi trường doanh nghiệp không chuyên sâu vào các mô hình học máy, việc tự phát triển một mô hình riêng là điều không hề đơn giản, gây tiêu tốn nhiều thời gian và tài nguyên. Do đó, các công cụ hỗ trợ có thể được cài đặt trực tiếp vào dự án sẽ là sự ưu tiên hàng đầu. Để giải được bài toán và đáp ứng được yêu cầu đặt ra, qua quá trình tìm hiểu và tham khảo Apache Tika là sự lựa chọn có thể coi là phù hợp nhất.
Apache Tika là một thư viện mã nguồn mở cho phép phân tích, trích xuất nội dung và phân loại các loại tài liệu khác nhau như văn bản, hình ảnh, âm thanh và video. Nó cho phép các nhà phát triển xây dựng các ứng dụng trí tuệ nhân tạo như trích xuất thông tin, tổ chức và phân loại tài liệu, trích xuất dữ liệu, phân tích ngôn ngữ tự nhiên và hơn thế nữa. Nó cũng cung cấp cho người dùng một bộ các công cụ để xử lý các tài liệu đó, bao gồm phân tích ngôn ngữ. Apache Tika hỗ trợ nhiều định dạng tài liệu phổ biến như Microsoft Office, OpenOffice, PDF, HTML, XML và nhiều định dạng khác. Nó sử dụng các thư viện và
công cụ phân tích khác nhau để phân tích nội dung tài liệu, bao gồm Apache PDFBox, Apache POI và Apache OpenNLP. Việc phân loại ngôn ngữ là một chức năng quan trọng của Apache Tika. Khi được cung cấp một tài liệu đầu vào, thư viện sẽ sử dụng các mô hình ngôn ngữ được xây dựng sẵn để phân loại ngôn ngữ của tài liệu đó. Khi đã xác định được ngôn ngữ của tài liệu, người dùng có thể sử dụng các công cụ khác trong Apache Tika để trích xuất thông tin từ tài liệu. Cụ thể, Apache Tika sử dụng một bộ các mô hình ngôn ngữ được huấn luyện từ các tập dữ liệu ngôn ngữ lớn để xác định ngôn ngữ của một tài liệu. Các mô hình này dựa trên các đặc trưng của ngôn ngữ như tần suất xuất hiện của các từ và cụm từ đặc trưng của từng ngôn ngữ. Khi phân loại ngôn ngữ, Apache Tika cũng hỗ trợ việc phân loại tài liệu có chứa nhiều ngôn ngữ khác nhau. Thông thường, việc phân loại ngôn ngữ là một bước quan trọng trong các ứng dụng xử lý ngôn ngữ tự nhiên, ví dụ như phân loại tin tức, phân tích cảm xúc, hay phân loại đối tượng trong các tài liệu.
a. OpenNLP. Apache Tika sử dụng thư viện OpenNLP để phân loại ngôn ngữ trong quá trình xử lý tài liệu. OpenNLP cung cấp một số models và công cụ cho việc xử lý ngôn ngữ tự nhiên, bao gồm cả việc phân loại ngôn ngữ. OpenNLP là một thư viện mã nguồn mở được sử dụng để xử lý ngôn ngữ tự nhiên trong Java. Nó cung cấp một loạt các công cụ để thực hiện các tác vụ phổ biến trong xử lý ngôn ngữ tự nhiên như tách từ (tokenization), phân tích cú pháp (parsing), phân loại văn bản (text classification), gán nhãn từ loại (part-of-speech tagging) và trích xuất thông tin (information extraction). Một số tính năng của OpenNLP bao gồm:
Tùy chỉnh các tham số này sẽ giúp tăng tính chính xác của việc phân loại ngôn ngữ trong OpenNLP, đồng thời giúp phù hợp hơn với các ngôn ngữ cụ thể và tác vụ phân loại văn bản. ● Maximum Entropy. Thuật toán Maximum Entropy (MaxEnt) là một thuật toán học máy sử dụng để xây dựng mô hình phân loại. Thuật toán này dựa trên nguyên lý tối đa hóa entropy, trong đó entropy được hiểu là một đại lượng đo lường mức độ không chắc chắn của thông tin. Thuật toán MaxEnt giải quyết bài toán phân loại dữ liệu bằng cách tìm cách đưa ra quyết định tốt nhất dựa trên thông tin có sẵn. Ví dụ, khi phân loại email vào các thư mục khác nhau (spam hoặc không phải spam), thuật toán sẽ dựa trên các thông tin như nội dung email, từ khóa có trong email, địa chỉ email gửi và nhận để đưa ra quyết định phân loại. Thuật toán MaxEnt hoạt động bằng cách tính toán xác suất của từng lớp phân loại dựa trên các đặc trưng của dữ liệu đầu vào. Sau đó, thuật toán sử dụng các giá trị xác suất này để đưa ra quyết định phân loại dữ liệu mới. Một kết quả ít có khả năng xảy ra hơn truyền tải nhiều thông tin hơn những kết quả có thể xảy ra hơn. Do đó, entropy có thể được coi là thước đo của sự không chắc chắn. Khi mục tiêu là tìm một phân phối càng không biết gì càng tốt, thì do đó, entropy phải là cực đại. Entropy được định nghĩa cụ thể như sau: Nếu X là biến ngẫu nhiên rời rạc có phân phối: P(X = xi ) = pi thì entropy của X là:
i ❑ ❑ pi log pi Trong quá trình huấn luyện mô hình, thuật toán sẽ cập nhật các trọng số của các đặc trưng dựa trên mức độ quan trọng của chúng đối với việc phân loại. Những đặc trưng quan trọng hơn sẽ có trọng số cao hơn, và ngược lại.
Tuy nhiên, việc xác định các đặc trưng quan trọng có thể gặp khó khăn do số lượng đặc trưng lớn. Do đó, thuật toán MaxEnt sử dụng kỹ thuật chọn đặc trưng để tìm ra các đặc trưng quan trọng nhất cho việc phân loại. Trong Maximum Entropy (MaxEnt) model, việc chọn đặc trưng (feature selection) rất quan trọng để đảm bảo hiệu quả của model. Tuy nhiên, việc lựa chọn đặc trưng thường khó khăn và phụ thuộc vào từng bài toán cụ thể. Có nhiều phương pháp khác nhau để chọn đặc trưng trong MaxEnt, trong đó phương pháp phổ biến bao gồm:
Maximum Entropy thường được ưa chuộng hơn trong việc phân loại ngôn ngữ vì những lý do sau:
ShrinkCharSequenceNormalizer Thu nhỏ các ký tự lặp lại ba lần trở lên thành hai lần lặp lại. c. Phân loại ngôn ngữ. Apache Tika có thể dễ dàng cài đặt và chạy trên máy cá nhân thông qua docker. Sau khi cài đặt có thể chạy Apache Tika trên localhost thông qua lệnh: Sau khi chạy, truy cập vào: http://localhost:9998/ ta sẽ có giao diện như sau: Trang chủ sẽ hiển thị cho chúng ta danh sách các API có thể sử dụng để thao tác với Apache Tika. Tập trung vào vấn đề phân loại ngôn ngữ, chúng ta có thể sử dụng API: http://localhost:9998/language/string
VI. Kết luận. Với sự phát triển của công nghệ như hiện tại, việc học hỏi và nghiên cứu các công nghệ mới, tìm hiểu và ứng dụng chúng vào trong dự án là điều rất quan trọng. Các công nghệ mới có thể giúp chúng ta giải quyết nhiều khía cạnh trong dự án một cách tiện lợi và nhanh chóng. Đồng thời chúng cũng giúp cho dự án có hiệu suất tốt hơn, phục vụ người dùng một cách hiệu quả nhất. Đối với dự án mà bản thân được trải nghiệm trong quá trình thực tập, không chỉ vấn đề được nêu ra tại đây mà còn nhiều vấn đề khác và nhiều công nghệ khác đã và đang được áp dụng. Nói chung, khoa học máy tính nói chung và các công nghệ về học máy, trí tuệ nhân tạo nói riêng ngày nay đã được áp dụng vô cùng phổ biến để giải quyết đa dạng các lĩnh vực, đặc biệt là đối với mảng phần mềm. Được trải nghiệm, làm việc và học tập qua dự án thực tế tại công ty quả thật là một vinh dự. Qua đó bản thân có thể thấy được tầm quan trọng mà chuyên ngành học của mình mang lại lợi ích thế nào đến thực tế, công việc và đời sống.