Tiểu luận môn Máy học và ứng dụng PHÂN LOẠI VĂN BẢN BẰNG PHƯƠNG PHÁP MÁY HỌC

32 699 2
Tiểu luận môn Máy học và ứng dụng PHÂN LOẠI VĂN BẢN BẰNG PHƯƠNG PHÁP MÁY HỌC

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

GVHD : PGS.TS Vũ Thanh Nguyên HVTH : Lâm Vinh Đạo Lớp : Cao học 08 MSHV : CH1301084 BÁO CÁO MÁY HỌC VÀ ỨNG DỤNG TP.HCM, tháng 3 năm 2014 ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN Tên đề tài: PHÂN LOẠI VĂN BẢN BẰNG PHƯƠNG PHÁP MÁY HỌC MỤC LỤC CHƯƠNG 1 : TỔNG QUAN 1 CHƯƠNG 2 : CÁC HƯỚNG TIẾP CẬN PHÂN LOẠI VĂN BẢN 2 I. Biểu diễn văn bản 2 II.Các phương pháp phân loại văn bản 3 II.1. Phương pháp SVM – Support Vector Machine 3 II.2. Phương pháp K – Nearest Neighbor ( kNN) 4 II.3.Phương pháp Naïve Bayes (NB) 6 II.4. Phương pháp Linear Least Square Fit – LLSF 7 II.5. Phương pháp Centroid – based vector 8 III.Kết luận : 9 CHƯƠNG 3 : PHÂN LOẠI VĂN BẢN TIẾNG VIỆT 11 I.RÚT TRÍCH ĐẶC TRƯNG VĂN BẢN VÀ BIỂU DIỄN BẰNG MÔ HÌNH VECTOR 11 I.1.Tách từ trong văn bản : 11 I.2.Xác định từ loại của từ 17 I.3. Loại bỏ các từ tầm thường 18 I.4.Trích chọn đặc trưng văn bản 19 II. SỬ DỤNG THUẬT TOÁN NAIVE BAYES ĐỂ PHÂN LOẠI VĂN BẢN 24 II.1.Lý do chọn Naïve Bayes : 24 II.2. Ý tưởng và công thức Bayes : 25 II.3. Một số cải tiến : 26 KẾT LUẬN 28 TÀI LIỆU THAM KHẢO : 29 1 Máy học và Ứng dụng Phân loại văn bản bằng phương pháp máy học GVHD: PGS.TS Vũ Thanh Nguyên HVTH: Lâm Vinh Đạo CHƯƠNG 1 : TỔNG QUAN Ngày này , sự bùng nổ thông tin do bị tác động bởi sự xuất hiện của các siêu phương tiện và World Wide Web (WWW) đã làm cho không gian dữ liệu gia tăng thường xuyên , điều này tạo ra một thách thức cho các hệ thống truy vấn thông tin sao cho có hiệu qủa . Một trong những khó khăn mà các hệ thống thông tin thường phải gặp đó là tần suất cập nhật của các thông tin qúa lớn .Phương thức sử dụng giấy trong giao dịch đang dần được số hóa , do nhiều tính năng vượt trội mà phương thức này mang lại , như là có thể lưu trữ lâu dài , cập nhật , sửa đổi , tìm kiếm một cách nhanh chóng . Do đó số lượng văn bản số hóa ngày nay đang tăng dần theo cấp số nhân , cùng với sự gia tăng của số lượng văn bản , nhu cầu tìm kiếm văn bản cũng tăng theo , khi đó phân loại văn bản tự động là một yêu cầu cấp thiết được đặt ra . Phân loại văn bản giúp sẽ giúp chúng ta tìm kiếm thông tin một cách nhanh chóng hơn thay vì phải tìm lần lượt trong từng văn bản , hơn nữa khi mà số lượng văn bản đang gia tăng một cách nhanh chóng thì thao tác tìm lần lượt trong từng văn bản sẽ mất rất nhiều thời gian , công sức và là một công việc nhàm chán và không khả thi. Chính vì thế nhu cầu phân loại văn bản tự động là thực sự cần thiết. Hiện nay đã có rất nhiều công trình nghiên cứu về phân loại văn bản và đã có được những kết qủa đáng khích lệ , như là : Support Vector Machine , K – Nearest Neighbor , Linear Least Squares Fit , Neural Network , Naïve Bayes , Centroid – Based … Điểm chung của các phương pháp này đều dựa vào xác suất thống kê hoặc dựa vào trọng số của các từ , cụm từ trong văn bản .Trong mỗi phương pháp đều có cách tính toán khác nhau , tuy nhiên các phương pháp này đều phải thực hiện một số bước chung , như : đầu tiên mỗi phương pháp sẽ dựa vào thông tin về sự xuất hiện của các từ trong văn bản ( tần số xuất hiện trong tập văn bản ,…) để biểu diễn thành dạng vector , sau đó tùy từng bài toán cụ thể mà chúng ta sẽ quyết định chọn áp dụng phương pháp nào , công thức tính toán nào cho phù hợp để phân loại tập văn bản dựa trên tập các vector đã xây dựng được ở bước trên , nhằm mục đích đạt được kết qủa phân loại tốt nhất . 2 Máy học và Ứng dụng Phân loại văn bản bằng phương pháp máy học GVHD: PGS.TS Vũ Thanh Nguyên HVTH: Lâm Vinh Đạo CHƯƠNG 2 : CÁC HƯỚNG TIẾP CẬN PHÂN LOẠI VĂN BẢN Cùng với các hướng nghiên cứu khác về xử lý và rút trích thông tin trong văn bản như phân cụm ( clustering) , tổng luợc văn bản ( text summarization ) , phân loại văn bản tự động là một hướng nghiên cứu được quan tâm trong nhiều năm gần đây . Để phân loại văn bản các công trình nghiên cứu thường dựa vào từ khóa , dựa trên ngữ nghĩa của từ , tập thô hay một số mô hình khác . I. Biểu diễn văn bản Như đã trình bày ở phần trên , bước đầu tiên trong qui trình phân loại văn bản là thao tác chuyển văn bản đang được mô tả duới dạng chuỗi các từ thành một mô hình khác , sao cho phù hợp với các thuật toán phân loại ,thông thường nguời ta thường biểu diễn văn bản bằng mô hình vector. Ý tưởng của mô hình này là xem mỗi một văn bản ( D i ) được biểu diễn theo dạng   i, d D i i  , trong đó i là chỉ số dùng để nhận diện văn bản này và d i là vector đặc trưng của văn bản D i này , trong đó : ), ,,( www d in2i1i i  , và n là số luợng đặc trưng của vector văn bản , w ij là trọng số của đặc trưng thứ j ,   n1,2, ,j . Một vấn đề cần quan tâm khi biểu diễn văn bản theo vector đặc trưng chính là việc chọn lựa đặc trưng và số chiều cho không gian vector . Cần phải chọn bao nhiêu từ , là các từ nào , phương pháp chọn ra sao ? . Đây là câu hỏi chúng ta phải trả lời trong qúa trình chuyển văn bản sang thành vector , có nhiều cách tiếp cận khác nhau để trả lời cho câu hỏi này , tiêu biểu là sử dụng phương pháp Information Gain , phương pháp DF – Thresolding hay phương pháp Term Strength . Phương pháp Information Gain sử dụng độ đo MI ( Mutual Information) để chọn ra tập từ khóa đặc trưng có độ đo MI cao nhất . Tuy nhiên , việc chọn lựa phương pháp nào thì tuỳ thuộc vào độ thích hợp , phù hợp của phương pháp , của độ đo mà phương pháp đó sử dụng so với bài toán mà chúng ta đang xem xét giải quyết , có thể là nếu văn bản là một trang web thì sẽ có phương pháp để chọn lựa đặc trưng khác so với các văn bản loại khác . 3 Máy học và Ứng dụng Phân loại văn bản bằng phương pháp máy học GVHD: PGS.TS Vũ Thanh Nguyên HVTH: Lâm Vinh Đạo Các đặc trưng của văn bản khi biểu diễn dưới dạng vector : - Số nhiều không gian đặc trưng thường lớn . - Các đặc trưng độc lập nhau. - Các đặc trưng rời rạc : vector đặc trưng d i có thể có nhiều thành phần mang giá trị 0 do có nhiều đặc trưng không xuất hiện trong văn bản d i (nếu chúng ta tiếp cận theo cách sử dụng giá trị nhị phân 1 , 0 để biểu diễn cho việc có xuất hiện hay không một đặc trưng nào đó trong văn bản đang được biểu diễn thành vector) , tuy nhiên nếu đơn thuần cách tiếp cận sử dụng giá trị nhị phân 0 , 1 này thì kết qủa phân loại phần nào hạn chế là do có thể đặc trưng đó không có trong văn bản đang xét nhưng trong văn bản đang xét lại có từ khóa khác với từ đặc trưng nhưng có ngữ nghĩa giống với từ đặc trưng này , do đó một cách tiếp cận khác là không sử dụng số nhị phân 0 ,1 mà sử dụng giá trị số thực để phần nào giảm bớt sự rời rạc trong vector văn bản. II.Các phương pháp phân loại văn bản II.1. Phương pháp SVM – Support Vector Machine SVM là phương pháp phân loại rất hiệu qủa được Vapnik giới thiệu năm 1995 . Ý tưởng của phương pháp là cho trước một tập huấn luyện được biểu diễn trong không gian vector , trong đó mỗi một văn bản được xem như một điểm trong không gian này .Phương pháp này tìm ra một siêu mặt phẳng h quyết định tốt nhất có thể chia các điểm trên không gian này thành hai lớp riêng biệt tương ứng , tạm gọi là lớp + ( cộng ) và lớp – ( trừ) .Chất lượng của siêu mặt phẳng này được quyết định bởi một khoảng cách ( được gọi là biên) của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này . Khoảng cách biên càng lớn thì càng có sự phân chia tốt các điểm ra thành hai lớp , nghĩa là sẽ đạt được kết qủa phân loại tốt . Mục tiêu của thuật toán SVM là tìm được khoảng cách biên lớn nhất để tạo kết qủa phân loại tốt . 4 Máy học và Ứng dụng Phân loại văn bản bằng phương pháp máy học GVHD: PGS.TS Vũ Thanh Nguyên HVTH: Lâm Vinh Đạo Có thể nói SVM thực chất là một bài toán tối ưu , mục tiêu của thuật toán là tìm được một không gian H và siêu mặt phẳng quyết định h trên H sao cho sai số khi phân loại là thấp nhất , nghĩa là kết qủa phân loại sẽ cho kết qủa tốt nhất . Phương trình siêu mặt phẳng chứa vector d i trong không gian như sau : 0b w . d i                                        0b w . d i , 0b w . d i , w . d i sign d i h Như thế vector h(d i ) biểu diễn sự phân lớp của vector d i vào hai lớp . Gọi Y i mang giá trị +1 hoặc -1 , khi đó Y i = +1 văn bản tương ứng với vector d i thuộc lớp + và ngược lại nó sẽ thuộc vào lớp - . Khi này để có siêu mặt phẳng h ta sẽ giải bài toán sau : Tìm Min w  với w  và b thỏa điều kiện : 1b))w d i (sign( y i :n1,i  Chúng ta thấy rằng SVM là mặt phẳng quyết định chỉ phụ thuộc vào các vector hỗ trợ có khoảng cách đến mặt phẳng quyết định là 1/w i . Khi các điểm khác bị xóa đi thì thuật toán vẫn cho kết qủa giống như ban đầu . Chính đặc điểm này làm cho SVM khác với các thuật toán khác như kNN , LLSF , Nnet , NB vì tất cả dữ liệu trong tập huấn luyện đều được dùng để tối ưu hóa kết qủa . II.2. Phương pháp K – Nearest Neighbor ( kNN) kNN là phương pháp truyền thống khá nổi tiếng theo hướng tiếp cận thống kê đã được nghiên cứu trong nhiều năm qua . kNN được đánh giá là một trong những 5 Máy học và Ứng dụng Phân loại văn bản bằng phương pháp máy học GVHD: PGS.TS Vũ Thanh Nguyên HVTH: Lâm Vinh Đạo phương pháp tốt nhất được sử dụng từ những thời kỳ đầu trong nghiên cứu về phân loại văn bản . Ý tưởng của phương pháp này đó là khi cần phân loại một văn bản mới , thuật toán sẽ xác định khoảng cách (có thể áp dụng các công thức về khoảng cách như Euclide , Cosine , Manhattan , …) của tất cả các văn bản trong tập huấn luyện đến văn bản này để tìm ra k văn bản gần nhất ,gọi là k nearest neighbor – k láng giềng gần nhất , sau đó dùng các khoảng cách này đánh trọng số cho tất cả các chủ đề. Khi đó , trọng số của một chủ đề chính là tổng tất cả các khoảng cách ở trên của các văn bản trong k láng giềng có cùng chủ đề , chủ đề nào không xuất hiện trong k láng giềng sẽ có trọng số bằng 0 . Sau đó các chủ đề sẽ được sắp xếp theo giá trị trọng số giảm dần và các chủ đề có trọng số cao sẽ được chọn làm chủ đề của văn bản cần phân loại. Trọng số của chủ đề c j đối với văn bản x được tính như sau : b j c j , d i y. {kNN} d i d i , x sim c j x, W                                Trong đó : y (d i , c) thuộc {0,1} , với : - y = 0 : văn bản d i không thuộc về chủ đề c j - y = 1 : văn bản d i thuộc về chủ đề c j sim (x , d) : độ giống nhau giữa văn bản cần phân loại x và văn bản d . Chúng ta có thể sử dụng độ đo cosine để tính khoảng cách : d i x d i . x d i , x cos d i , x sim                           - b j là ngưỡng phân loại của chủ đề c j được tự động học sử dụng một tập văn bản hợp lệ được chọn ra từ tập huấn luyện. 6 Máy học và Ứng dụng Phân loại văn bản bằng phương pháp máy học GVHD: PGS.TS Vũ Thanh Nguyên HVTH: Lâm Vinh Đạo Để chọn được tham số k tốt nhất cho thao tác phân loại , thuật toán cần được chạy thử nghiệm trên nhiều giá trị k khác nhau , giá trị k càng lớn thì thuật toán càng ổn định và sai sót càng thấp . II.3.Phương pháp Naïve Bayes (NB) NB là phương pháp phân loại dựa vào xác suất được sử dụng rộng rãi trong lĩnh vực máy học và nhiều lĩnh vực khác như trong các công cụ tìm kiếm , các bộ lọc mail … Ý tưởng cơ bản của cách tiếp cận này là sử dụng xác suất có điều kiện giữa từ hoặc cụm từ và chủ đề để dự đoán xác suất chủ đề của một văn bản cần phân loại.Điểm quan trọng của phương pháp này chính là ở chỗ giả định rằng sự xuất hiện của tất cả các từ trong văn bản đều độc lập với nhau. Như thế NB không tận dụng được sự phụ thuộc của nhiều từ vào một chủ đề cụ thể . Chính giả định đó làm cho việc tính toán NB hiệu qủa và nhanh chóng hơn các phương pháp khác với độ phức tạp theo số mũ vì nó không sử dụng cách kết hợp các từ để đưa ra phán đoán chủ đề. Mục đích chính là làm sao tính được xác suất Pr(C j , d’) , xác suất để văn bản d’nằm trong lớp C j .Theo luật Bayes , văn bản d’ sẽ được gán vào lớp C j nào có xác suất Pr(C j , d’) cao nhất . Công thức để tính Pr(C j , d’) như sau :                                 c c ' d ' 1i C ' | w i Pr. c ' Pr d ' 1i C j | w i Pr. C j Pr argmax C c j d ' H BAYES Với : - TF(w i , d’) là số lần xuất hiện của từ w i trong văn bản d’ - |d’| là số lượng các từ trong văn bản d’ - w i là một từ trong không gian đặc trưng F với số chiều là |F| 7 Máy học và Ứng dụng Phân loại văn bản bằng phương pháp máy học GVHD: PGS.TS Vũ Thanh Nguyên HVTH: Lâm Vinh Đạo - Pr(C j ) được tính dựa trên tỷ lệ phần trăm của số văn bản mỗi lớp tương ứng      C C ' C ' C j C C j C j Pr trong tập dữ liệu huấn luyện -            F w ' c j , w ' TFF c j , w i TF1 C j | w i Pr Ngoài ra còn có các phương pháp NB khác có thể kể ra như ML Naïve Bayes , MAP Naïve Bayes , Expected Naïve Bayes . Nói chung Naïve Bayes là một công cụ rất hiệu qủa trong một số trường hợp. Kết qủa có thể rất xấu nếu dữ liệu huấn luyện nghèo nàn và các tham số dự đoán (như không gian đặc trưng) có chất lượng kém.Nhìn chung đây là một thuật toán phân loại tuyến tính thích hợp trong phân loại văn bản nhiều chủ đề . NB có ưu điểm là cài đặt đơn giản , tốc độ thực hiện thuật toán nhanh , dễ dàng cập nhật dữ liệu huấn luyện mới và có tính độc lập cao với tập huấn luyện . II.4. Phương pháp Linear Least Square Fit – LLSF LLSF là một cách tiếp cận ánh xạ được phát triển bởi Yang và Chute vào năm 1992 . Ban đầu LLSF được thử nghiệm trong lĩnh vực xác định từ đồng nghĩa sau đó sử dụng trong phân loại vào năm 1994 . Các thử nghiệm cho thấy hiệu suất phân loại của LLSF có thể ngang bằng với phương pháp kNN kinh điển. Ý tưởng của LLSF là sử dụng phương pháp hồi quy để học từ tập huấn luyện và các chủ đề có sẵn. Tập huấn luyện được biểu diễn dưới dạng một cặp vector đầu vào và đầu ra như sau: -Vector đầu vào là một văn bản bao gồm các từ và trọng số. -Vector đầu ra gồm các chủ đề cùng với trọng số nhị phân của văn bản ứng với vector đầu vào . [...]... toàn bộ tập văn bản khi thêm một số văn bản mới vào tập dữ liệu mà chỉ phân loại các văn bản mới mà thôi , khi đó thuật toán phải có khả năng giảm độ nhiễu ( noise ) khi phân loại văn bản GVHD: PGS.TS Vũ Thanh Nguyên HVTH: Lâm Vinh Đạo 11 Máy học và Ứng dụng Phân loại văn bản bằng phương pháp máy học CHƯƠNG 3 : PHÂN LOẠI VĂN BẢN TIẾNG VIỆT Để tiến hành phân loại văn bản nói chung, chúng ta sẽ thực hiện... đặc trưng của văn bản GVHD: PGS.TS Vũ Thanh Nguyên HVTH: Lâm Vinh Đạo 23 Máy học và Ứng dụng Phân loại văn bản bằng phương pháp máy học Phương pháp 2: Một phương pháp khác để rút trích các đặc trưng của văn bản là sự kết hợp tần suất xuất hiện của từ trong văn bản và tần suất xuất hiện ngược trong văn bản (TFIDF) Lúc này chúng ta có công thức tính giá trị trọng số cho từ Tj trong văn bản Di , như... = upper + 1 và quay lại bước 4 II SỬ DỤNG THUẬT TOÁN NAIVE BAYES ĐỂ PHÂN LOẠI VĂN BẢN II.1.Lý do chọn Naïve Bayes : NB là phương pháp phân loại dựa vào xác suất được sử dụng rộng rãi trong lĩnh vực máy học và nhiều lĩnh vực khác như trong các công cụ tìm kiếm , các bộ lọc mail … GVHD: PGS.TS Vũ Thanh Nguyên HVTH: Lâm Vinh Đạo 25 Máy học và Ứng dụng Phân loại văn bản bằng phương pháp máy học Điểm quan... Đạo 24 Máy học và Ứng dụng Phân loại văn bản bằng phương pháp máy học 0.Như thế thì trên 96% không gian bộ nhớ sẽ bị bỏ trống , khi vector đặc trưng này được dùng để biểu diễn một văn bản 4.4.3 Phương pháp rút trích đặc trưng đề nghị sử dụng Chúng ta sẽ sử dụng một phương pháp rút trích đặc trưng sao cho phù hợp Chúng ta chọn phương pháp này để rút trích đặc trưng , vì các yếu tố sau :  Phương pháp. .. vector để biểu diễn văn bản , do đó phương pháp tách từ trong văn bản đóng vai trò quan trọng qúa trình biểu diễn văn bản bằng vector Yếu tố này rất quan trọng , vì có thể đối với một số ngôn ngữ như tiếng Anh chẳng hạn thì thao tác GVHD: PGS.TS Vũ Thanh Nguyên HVTH: Lâm Vinh Đạo 10 Máy học và Ứng dụng Phân loại văn bản bằng phương pháp máy học tách từ trong văn bản đơn giản chỉ là dựa vào các khoảng trắng... 19 Máy học và Ứng dụng Phân loại văn bản bằng phương pháp máy học I.4.Trích chọn đặc trưng văn bản 4.1 Các ý tưởng cơ bản Các phương pháp rút trích thông tin cổ điển thì coi mỗi một văn bản như là tập các từ khóa và gọi tập các từ khóa này là tập các term Một phần tử trong tập term thì đơn giản là một từ , mà ngữ nghĩa của từ này giúp tạo thành nên nội dung của văn bản Vì vậy , tập term được sử dụng. ..8 Máy học và Ứng dụng Phân loại văn bản bằng phương pháp máy học Giải phương trình các cặp vector đầu vào , đầu ra chúng ta sẽ thu được ma trận đồng hiện của hệ số hồi quy của từ và chủ đề Phương pháp này sử dụng công thức : 2 FLS  arg F min FA B Trong đó : - A, B là ma trận đại diện tập dữ liệu huấn luyện ( các cột trong ma trận tương ứng là các vector đầu vào và đầu ra) - FLS là... trưng văn bản và biểu diễn văn bản bằng mô hình vector  Bước 2 : Áp dụng thuật toán phân loại văn bản Bước này chúng ta sẽ đề xuất sử dụng thuật toán Navie Bayes để phân loại văn bản vì nhìn chung đây là một thuật toán phân loại tuyến tính thích hợp trong phân loại văn bản nhiều chủ đề NB có ưu điểm là cài đặt đơn giản , tốc độ thực hiện thuật toán nhanh , dễ dàng cập nhật dữ liệu huấn luyện mới và. .. pháp máy học 3.3 Ước lượng P(Y|X) Từ 2 công thức trên , chúng ta có công thức cho phân loại văn bản sẽ là : P(Y  ci | w1 w 2 w m))  GVHD: PGS.TS Vũ Thanh Nguyên pci  k pw k & ci   j p c j k p w k & c j     HVTH: Lâm Vinh Đạo 28 Máy học và Ứng dụng Phân loại văn bản bằng phương pháp máy học KẾT LUẬN Từ việc nghiên cứu lý thuyết và kết quả thực nghiệm có thể khẳng định rằng bài toán phân. .. toán phân lớp văn bản: khái niệm, mô hình, đánh giá phân lớp GVHD: PGS.TS Vũ Thanh Nguyên HVTH: Lâm Vinh Đạo 29 Máy học và Ứng dụng Phân loại văn bản bằng phương pháp máy học TÀI LIỆU THAM KHẢO : [1] Đỗ Phúc , Trịnh Quốc Sơn : Xây dựng hệ thống tạo kiến trúc phân cấp cụm trang web hỗ trợ tìm kiếm thông tin 2003 [2] Nguyễn Thị Minh Huyền, Vũ Xuân Lương, Lê Hồng Phương : "Sử dụng bộ gán nhãn từ loại . PHÂN LOẠI VĂN BẢN BẰNG PHƯƠNG PHÁP MÁY HỌC MỤC LỤC CHƯƠNG 1 : TỔNG QUAN 1 CHƯƠNG 2 : CÁC HƯỚNG TIẾP CẬN PHÂN LOẠI VĂN BẢN 2 I. Biểu diễn văn bản 2 II.Các phương pháp phân loại văn bản. là ngưỡng phân loại của chủ đề c j được tự động học sử dụng một tập văn bản hợp lệ được chọn ra từ tập huấn luyện. 6 Máy học và Ứng dụng Phân loại văn bản bằng phương pháp máy học GVHD:. trọng số nhị phân của văn bản ứng với vector đầu vào . 8 Máy học và Ứng dụng Phân loại văn bản bằng phương pháp máy học GVHD: PGS.TS Vũ Thanh Nguyên HVTH: Lâm Vinh Đạo Giải phương trình

Ngày đăng: 21/05/2015, 12:50

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan