1. Trang chủ
  2. » Công Nghệ Thông Tin

Phát hiện tin giả với python và machine learning

14 143 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 553,98 KB

Nội dung

Bài viết Phát hiện tin giả với python và machine learning tìm hiểu cách thức phát hiện tin giả bằng Python. Sử dụng Python để xây dựng một mô hình có thể phát hiện chính xác một mẩu tin tức là thật hay giả. Chúng tôi sẽ sử dụng TfidfVectorizer và PassiveAggressionClassifier để phân loại tin tức thành “Thật” và “Giả”. Sử dụng tập dữ liệu có kích cỡ 7796 dòng × 4 cột và thực hiện trong Jupyter Lab. Mời các bạn cùng tham khảo!

PHÁT HIỆN TIN GIẢ VỚI PYTHON VÀ MACHINE LEARNING ThS Nguyễn Thanh Trường Trường Đại học Tài – Marketing Tóm tắt: Tin giả xuất từ lâu thời cổ đại với kiện vào kỷ XIII trước Công nguyên, Rameses Đại đế truyền bá lời nói dối tuyên truyền miêu tả Trận chiến Kadesh chiến thắng tuyệt vời người Ai Cập; ơng mơ tả cảnh chiến đấu với kẻ thù trận chiến tường gần tất ngơi đền Tuy nhiên, hiệp ước người Ai Cập người Hittite cho thấy trận chiến thực bế tắc (Weir, 2009) Ngày nay, với mở rộng ngày tăng, khả truy cập phổ biến Internet dẫn đến phát triển tin giả Thông tin câu chuyện xuất liên tục với tốc độ nhanh hết, thường thiếu xác minh, sử dụng có kết nối Internet Trong chúng tơi tìm hiểu cách thức phát tin giả Python Chúng sử dụng Python để xây dựng mơ hình phát xác mẩu tin tức thật hay giả Chúng sử dụng TfidfVectorizer PassiveAggressionClassifier để phân loại tin tức thành “Thật” “Giả” Chúng tơi sử dụng tập liệu có kích cỡ 7796 dịng × cột thực Jupyter Lab Từ khóa: fake news, progaming Python, machine learning, tin giả, lập trình Python, máy học Giới thiệu Một số câu hỏi thường đặt ra: • Bạn có tin tưởng tất tin tức bạn nghe từ mạng xã hội khơng? • Tất tin tức khơng có thật, phải khơng? • Làm bạn phát tin tức giả? Tin giả (tiếng Anh: fake news), gọi là tin rác hoặc tin tức giả mạo giả mạo thông tin sai lệch gây hiểu lầm trình bày dạng tin tức Nó thường có mục đích làm tổn hại danh tiếng cá nhân tổ chức kiếm tiền thông qua doanh thu quảng cáo Tuy nhiên, thuật ngữ khơng có định nghĩa cố định áp dụng rộng rãi để bao gồm loại thông tin sai lệch nào, bao gồm chế vô ý vô ý thức, cá nhân tiếng áp dụng cho tin tức bất lợi cho quan điểm cá nhân họ Một phổ biến báo in, phổ biến tin tức giả tăng lên với gia tăng phương tiện truyền thông xã hội, đặc biệt Facebook News Feed Phân - 243 cực trị, trị hậu thật, thiên vị xác nhận, thuật tốn truyền thơng xã hội có liên quan đến việc lan truyền tin tức giả Điều tạo tuyên truyền tác nhân nước thù địch, đặc biệt bầu cử Việc sử dụng trang web tin tức giả mạo lưu trữ ẩn danh gây khó khăn cho việc truy tố nguồn tin tức giả mạo tội phỉ báng Trong số định nghĩa, tin tức giả mạo bao gồm báo châm biếm bị hiểu sai thật báo sử dụng tiêu đề giật gân kích động khơng hỗ trợ văn Tin tức giả mạo làm giảm tác động tin tức thật cách cạnh tranh với nó; phân tích Buzzfeed cho thấy tin giả mạo hàng đầu bầu cử tổng thống Hoa Kỳ năm 2016 nhận nhiều tham gia Facebook tin hàng đầu từ phương tiện truyền thơng lớn Nó có khả làm xói mịn lịng tin việc đưa tin nghiêm túc phương tiện truyền thông Thuật ngữ sử dụng để gây nghi ngờ tin tức hợp pháp, cựu tổng thống Hoa Kỳ Donald Trump cho phổ biến thuật ngữ cách sử dụng để mơ tả thơng tin báo chí tiêu cực thân ơng Nó ngày bị trích, phần Trump lạm dụng, với việc phủ Anh định tránh thuật ngữ này, “được định nghĩa kém” “ngụy tạo nhiều loại thơng tin sai lệch, từ sai sót thực sự can thiệp nước ngoài” (Murphy, 2018) Nhiều chiến lược chống lại tin giả nghiên cứu tích cực cần điều chỉnh cho phù hợp với loại tin giả Cần có tự điều chỉnh hiệu quy định thực thi hợp pháp phương tiện truyền thơng xã hội cơng cụ tìm kiếm web Không gian thông tin cần tràn ngập tin tức xác để thay tin tức giả mạo Các cá nhân cần chủ động đối mặt với thông tin sai lệch bị phát hiện, cẩn thận chia sẻ thông tin qua mạng xã hội Tuy nhiên, riêng lý trí, phương pháp khoa học kỹ tư phản biện không đủ để chống lại phạm vi rộng lớn ý tưởng xấu Bị lạm dụng sức mạnh thành kiến xác nhận, lý luận có động thành kiến ​​nhận thức khác làm sai lệch nghiêm trọng nhiều khía cạnh sức khỏe tâm thần miễn dịch Lý thuyết tiêm chủng cho thấy nhiều hứa hẹn việc thiết kế kỹ thuật để làm cho cá thể có khả chống lại dụ dỗ tin tức giả, giống cách loại vắc-xin bảo vệ chống lại bệnh truyền nhiễm Phân loại tin để dán nhãn cảnh báo: (Gioithieu, n.d.) • Tin giả: Tin khơng có thật, tin bịa đặt, vu khống lan truyền xã hội khơng gian mạng; • Tin sai thật: Tin có phần thật khơng hồn tồn xác, tin xun tạc, bóp méo thật; tin khơng có sở lan truyền xã hội khơng gian mạng; 244 - • Tin xác thực: Là tin thật, kiểm chứng, kết luận quan chức có thẩm quyền Cơ sở lý thuyết 2.1 Thuật tốn Tìm hiểu thuật ngữ liên quan tfidfvectorizer, PassiveAggression Classifier: TfidfVectorizer gì? TF-IDF  (Term Frequency – Inverse Document Frequency) kĩ thuật sử dụng khai phá liệu văn Trọng số sử dụng để đánh giá tầm quan trọng từ văn Giá trị cao thể độ quan trọng cao phụ thuộc vào số lần từ xuất văn bù lại tần suất từ tập liệu Một vài biến thể tf-idf thường sử dụng hệ thống tìm kiếm cơng cụ để đánh giá xếp văn dựa vào truy vấn người dùng Tf-idf sử dụng để lọc từ stopwords tốn tóm tắt văn phân loại văn TF: Term Frequency (Tần suất xuất từ) số lần từ xuất văn Vì văn có độ dài ngắn khác nên số từ xuất nhiều lần văn dài văn ngắn Như vậy, term frequency thường chia cho độ dài văn (Tổng số từ văn bản) tf(t, d) = f(t, d) max{f(w, d) : w ϵ d} Trong đó: • tf(t, d): tần suất xuất từ t văn d, • f(t, d): Số lần xuất từ t văn d, • max({f(w, d) : w ϵ d}): Số lần xuất từ có số lần xuất nhiều văn d IDF: Inverse Document Frequency (Tần số nghịch từ tập văn bản), giúp đánh giá tầm quan trọng từ Khi tính tốn TF, tất từ coi có độ quan trọng Nhưng số từ “is”, “of” “that” thường xuất nhiều lần độ quan trọng không cao Như cần giảm độ quan trọng từ xuống Tính IDF để giảm giá trị từ phổ biến Mỗi từ có giá trị IDF duy tập văn - 245 idf(t, D) = log |D| |{d ϵ D : t ϵ d}| Trong đó: • idf(t, D): giá trị idf từ t tập văn bản, • |D|: Tổng số văn tập D, • |{d ϵ D : t ϵ d}|: thể số văn tập D có chứa từ t Cơ số logarit công thức không thay đổi giá trị idf từ mà thu hẹp khoảng giá trị từ Vì thay đổi số dẫn đến việc giá trị từ thay đổi số định tỷ lệ trọng lượng với không thay đổi (nói cách khác, thay đổi số không ảnh hưởng đến tỷ lệ giá trị IDF) Việc sử dụng logarit nhằm giúp giá trị tf-idf từ nhỏ hơn, có cơng thức tính tf-idf từ văn tích tf idf từ Cụ thể, có cơng thức tính tf-idf hồn chỉnh sau:  tfidf(t, d, D) = tf(t, d) × idf(t, D) Khi đó: Những từ có giá trị TF-IDF cao từ xuất nhiều văn này, xuất văn khác Việc giúp lọc từ phổ biến giữ lại từ có giá trị cao (từ khố văn đó) TfidfVectorizer chuyển đổi tập hợp tài liệu thơ thành ma trận tính TF-IDF PassiveAggressionClassifier gì? Passive Aggression Classifier (Bộ phân loại tích cực thụ động) thuộc loại thuật toán học trực tuyến máy học Nó hoạt động cách phản hồi thụ động phân loại xác phản hồi tích cực tính tốn sai Trong máy học học có giám sát khơng giám sát danh mục học máy Ngồi cịn có danh mục khác máy học như: Reinforcement Learning (Học tăng cường) Batch Learning (Học theo lô) Online Learning (Học trực tuyến) Instance-Based (Dựa phiên bản) Model-Based (Dựa mơ hình) 246 - Passive Aggression Classifier thuật toán học trực tuyến, nơi huấn luyện hệ thống bước cách cung cấp cho cá thể cách tuần tự, riêng lẻ theo nhóm nhỏ gọi lơ nhỏ Trong học trực tuyến, mơ hình máy học đào tạo triển khai trình sản xuất theo cách tiếp tục học tập liệu xuất Vì vậy, nói thuật tốn Bộ phân loại tích cực thụ động tốt cho hệ thống nhận liệu luồng liên tục Thuật toán thụ động thuật toán học tập trực tuyến Một thuật toán thụ động cho kết phân loại xác trở nên tích cực trường hợp tính tốn sai, cập nhật điều chỉnh Khơng giống hầu hết thuật tốn khác, khơng hội tụ Mục đích tạo cập nhật để điều chỉnh mát, gây thay đổi định mức vectơ trọng lượng Các thuật tốn tích cực thụ động họ thuật toán để học tập quy mô lớn Chúng tương tự Perceptron (Một mơ hình máy tính tạo để đại diện mô khả nhận biết phân biệt não bộ) chỗ không yêu cầu tốc độ học tập Tuy nhiên, trái với Perceptron, chúng bao gồm tham số quy hóa Tập liệu tin tức giả mạo Tập liệu mà sử dụng cho dự án python news.csv (dataflair, n.d.) Tập liệu có kích cỡ 7796 dịng × cột Cột xác định tin tức, cột thứ hai thứ ba tiêu đề văn bản, cột thứ tư có nhãn cho biết tin tức THẬT hay GIẢ Bộ liệu dung lượng 29,2MB tập tin liệu có dạng sau: 2.2 Ngơn ngữ lập trình Python - 247 Python xem ngơn ngữ phù hợp cho nhà khoa học liệu Một vài điểm bật Python cho Khoa học liệu (Wes McKinney, 2017): • Python ngơn ngữ nguồn mở miễn phí, linh hoạt mạnh mẽ • Python giảm nửa thời gian phát triển với cú pháp đơn giản dễ đọc • Với Python, người dùng thực thao tác liệu, phân tích trực quan hóa • Python cung cấp thư viện mạnh mẽ cho ứng dụng máy học tính tốn khoa học khác Một số thư viện Python cho Khoa học liệu Đây phần mà sức mạnh thực Python với khoa học liệu đưa vào tranh Python kèm với nhiều thư viện để tính tốn khoa học, phân tích, trực quan hóa, v.v Sau số thư viện phân theo nhóm:  Khai thác liệu • Scrapy Một thư viện khoa học liệu Python phổ biến nhất, Scrapy giúp xây dựng chương trình thu thập thơng tin (spider bots) truy xuất liệu có cấu trúc từ web – ví dụ: URL thơng tin liên hệ Đó cơng cụ tuyệt vời để thu thập liệu sử dụng, chẳng hạn mơ hình máy học Python Các lập trình viên sử dụng để thu thập liệu từ API Framework tuân theo nguyên tắc khơng lặp lại thiết kế giao diện Do đó, cơng cụ truyền cảm hứng cho người dùng viết mã tái sử dụng để xây dựng mở rộng trình thu thập thơng tin lớn • BeautifulSoup BeautifulSoup thư viện thực phổ biến khác để thu thập thông tin web thu thập liệu Nếu bạn muốn thu thập liệu có sẵn số trang web khơng thơng qua CSV API thích hợp, BeautifulSoup giúp bạn thu thập liệu xếp liệu thành định dạng bạn cần   Xử lý liệu mơ hình hóa • NumPy NumPy (Numerical Python) cơng cụ hồn hảo cho tính tốn khoa học thực phép toán mảng nâng cao 248 - Thư viện cung cấp nhiều tính tiện dụng thực thao tác n-mảng ma trận trong Python Nó giúp xử lý mảng lưu trữ giá trị kiểu liệu làm cho việc thực phép tốn mảng (và vector hóa chúng) dễ dàng Trên thực tế, việc vector hóa phép tốn kiểu mảng NumPy giúp tăng hiệu suất tăng tốc thời gian thực thi • SciPy Thư viện hữu ích bao gồm module cho đại số tuyến tính, tích hợp, tối ưu hóa thống kê Chức xây dựng dựa NumPy, mảng sử dụng thư viện SciPy hoạt động hiệu cho tất loại dự án lập trình khoa học (khoa học, tốn học kỹ thuật) Nó cung cấp quy trình số hiệu tối ưu hóa số, tích hợp quy trình khác module Tài liệu phong phú giúp làm việc với thư viện thực dễ dàng • Pandas Pandas thư viện tạo để giúp nhà phát triển làm việc với liệu “labeled” “relational” cách trực quan Nó dựa hai cấu trúc liệu chính: “Chuỗi” (một chiều, giống danh sách mục) “Khung liệu” (hai chiều, giống bảng có nhiều cột) Pandas cho phép chuyển đổi cấu trúc liệu thành đối tượng DataFrame, xử lý liệu bị thiếu thêm / xóa cột khỏi DataFrame, đưa vào tập tin bị thiếu vẽ liệu biểu đồ hộp biểu đồ Đây điều bắt buộc phải có để xử lý liệu, thao tác trực quan hóa • SciKit-Learn Đây tiêu chuẩn công nghiệp cho dự án khoa học liệu dựa Python Scikits nhóm gói SciPy Stack tạo cho chức cụ thể – ví dụ: xử lý hình ảnh Scikit-learning sử dụng phép toán SciPy để hiển thị giao diện ngắn gọn cho thuật toán máy học phổ biến Các chuyên gia liệu học sử dụng để xử lý tác vụ máy học khai thác liệu tiêu chuẩn phân cụm, hồi quy, lựa chọn mơ hình, giảm kích thước phân loại Nó cịn có hữu ích khác kèm với tài liệu chất lượng cung cấp hiệu suất cao  Trực quan hóa liệu • Matplotlib Đây thư viện khoa học liệu tiêu chuẩn giúp tạo trực quan hóa liệu biểu đồ biểu đồ hai chiều (biểu đồ, biểu đồ phân tán, biểu đồ tọa độ phi Descartes) - 249 Matplotlib thư viện vẽ biểu đồ thực hữu ích dự án khoa học liệu – cung cấp API hướng đối tượng để nhúng biểu đồ vào ứng dụng Nhờ có thư viện mà Python cạnh tranh với công cụ khoa học MatLab Mathematica Tuy nhiên, nhà phát triển cần viết nhiều mã bình thường sử dụng thư viện để tạo hình ảnh trực quan nâng cao Lưu ý thư viện vẽ sơ đồ phổ biến hoạt động liền mạch với Matplotlib • Seaborn Seaborn dựa Matplotlib phục vụ công cụ máy học Python hữu ích, nhằm trực quan hóa mơ hình thống kê – đồ nhiệt loại trực quan khác dùng để tóm tắt liệu mơ tả phân phối tổng thể Khi sử dụng thư viện này, bạn hưởng lợi từ sưu tập hình ảnh trực quan phong phú (bao gồm hình ảnh phức tạp chuỗi thời gian, biểu đồ chung sơ đồ violin) Kết thảo luận Điều kiện tiên Dự án Người dùng cần cài đặt thư viện sau pip: Cài đặt numpy Từ cửa sổ command line nhập lệnh: pip install numpy 250 - pip install numpy pandas sklearn Cài đặt jupyter: D:\ThanhTruong\Python>pip install jupyter Người dùng cần cài đặt Jupyter Lab để chạy mã C:\Users\Thanh Truong >pip install jupyterlab Truy cập dấu nhắc lệnh bạn chạy lệnh sau: C:\Users\Thanh Truong>jupyter lab Người dùng thấy cửa sổ trình duyệt mở ra; tạo bảng điều khiển sử dụng để chạy mã bạn Để chạy nhiều dòng mã lúc, nhấn Shift + Enter Các bước phát tin giả với Python Làm theo bước để phát tin giả dự án Python Bước Thực imports cần thiết: - 251 Hình 3.1 Màn hình làm việc JupiterLab Bước Bây giờ, đọc liệu vào DataFrame, nhận hình dạng liệu hồ sơ #Read the data df=pd.read_csv(‘D:\\ThanhTruong\\Python\\news.csv’) #Get shape and head df.shape df.head() Output Screenshot: 252 - Bước Lấy nhãn từ DataFrame # Get the labels labels=df.label labels.head() Output Screenshot: Bước Chia tập liệu thành tập huấn luyện thử nghiệm # Split the dataset x_train,x_test,y_train,y_test=train_test_split(df[‘text’], labels, test_size=0.2, random_state=7) - 253 Output Screenshot: Bước Khởi tạo TfidfVectorizer Khởi tạo TfidfVectorizer với từ dừng từ tiếng Anh tần suất tài liệu tối đa 0,7 (các thuật ngữ có tần suất tài liệu cao bị loại bỏ) Từ dừng từ phổ biến ngôn ngữ cần lọc trước xử lý liệu ngôn ngữ tự nhiên Và TfidfVectorizer biến tập hợp tài liệu thơ thành ma trận tính TF-IDF Bây giờ, lắp biến đổi vectơ tập huấn luyện (train set), biến đổi vectơ thử nghiệm # Initialize a TfidfVectorizer tfidf_vectorizer=TfidfVectorizer(stop_words=’english’, max_df=0.7) #DataFlair – Fit and transform train set, transform test set tfidf_train=tfidf_vectorizer.fit_transform(x_train) tfidf_test=tfidf_vectorizer.transform(x_test) Output Screenshot: Bước Khởi tạo PassiveAggressionClassifier Việc khởi tạo PassiveAggressionClassifier giúp phù hợp với tfidf_train y_train Sau đó, chúng tơi dự đốn tập kiểm tra từ TfidfVectorizer tính tốn xác với accuracy_score () từ sklearn.metrics # Initialize a PassiveAggressiveClassifier pac=PassiveAggressiveClassifier(max_iter=50) pac.fit(tfidf_train,y_train) #DataFlair – Predict on the test set and calculate accuracy y_pred=pac.predict(tfidf_test) 254 - score=accuracy_score(y_test,y_pred) print(f’Accuracy: {round(score*100,2)}%’) Output Screenshot: Bước Kết Mơ hình cho độ xác 92,34% Bước Cuối In ma trận nhầm lẫn để có nhìn sâu sắc số lượng phủ định khẳng định sai thật # Build confusion matrix confusion_matrix(y_test,y_pred, labels=[‘FAKE’,’REAL’]) Output Screenshot: Vì vậy, với mơ hình này, chúng tơi có 584 dương tính thực, 586 âm tính đúng, 43 dương tính giả 54 âm tính giả Kết luận Khi tung tin giả nhận “hưởng ứng” cộng đồng, dư luận, đồng nghĩa với việc đối tượng tung tin giả dẫn dắt dư luận theo hướng sai lệch, làm người ta tin vào điều xuyên tạc, dàn dựng, bóp méo,… suy luận theo cách muốn; từ gây hậu nghiêm trọng Từ việc làm giảm, uy tín, danh dự; ảnh hưởng tới sống, gia đình, người thân cá nhân; đến việc ảnh hưởng tới hoạt động sản - 255 xuất, kinh doanh toàn xã hội Thậm chí ảnh hướng tới lịng tin người dân với luật pháp, sách, Tesla nạn nhân cố tin tức giả mạo tác động tiêu cực đến giá cổ phiếu họ thời gian ngắn Cổ phiếu Tesla, cho thấy gia tăng ngày trước kiện này, trường hợp này, ngày tháng Vào ngày này, giá cổ phiếu mở xung quanh $ 341,96 cổ phiếu, sau chạm mức thấp $ 321,01 vào ngày giao dịch trước đóng cửa giá $ 335,35 Một video lan truyền Twitter với nội dung chứa tin giả dẫn tới sụt giảm đáng kể trước giá điều chỉnh quay trở lại trước xu hướng ngày tăng Một phần lớn số khả Tesla, nhanh chóng rõ ràng từ chối video chứng minh bị làm giả (David, 2020) Tóm lại: Trong chúng tơi tìm hiểu cách thức phát tin giả Python Chúng tơi sử dụng Python để xây dựng mơ hình phát xác mẩu tin tức thật hay giả Chúng sử dụng TfidfVectorizer PassiveAggressionClassifier để phân loại tin tức thành “Thật” “Giả” Chúng tơi sử dụng tập liệu có kích cỡ 7796 dịng × cột thực Jupyter Lab Kết thu với độ xác 92,34% Tài liệu tham khảo Dataflair (n.d.) https://data-flair.training/blogs/advanced-python-project-detecting-fake-news/ David, D (12/2020) The Impact of F The Impact of Fake News on Company Value: Evidence from Tesla and Galena Biopharma University of Tennessee Gioithieu (n.d.) https://tingia.gov.vn/gioi-thieu/ Murphy, M (2018) Government bans phrase ‘fake news’ www.telegraph.co.uk Weir, W (2009) History’s Greatest Lies Beverly, Massachusetts: Fair Winds Press ISBN 978-159233-336-3 Wes McKinney (2017) Python for Data Analysis O’Reilly Media Inc 256 - ... Enter Các bước phát tin giả với Python Làm theo bước để phát tin giả dự án Python Bước Thực imports cần thiết: - 251 Hình 3.1 Màn hình làm việc JupiterLab Bước Bây giờ, đọc liệu vào DataFrame,... thức phát tin giả Python Chúng sử dụng Python để xây dựng mơ hình phát xác mẩu tin tức thật hay giả Chúng sử dụng TfidfVectorizer PassiveAggressionClassifier để phân loại tin tức thành “Thật” ? ?Giả? ??... kiếm web Khơng gian thơng tin cần tràn ngập tin tức xác để thay tin tức giả mạo Các cá nhân cần chủ động đối mặt với thông tin sai lệch bị phát hiện, cẩn thận chia sẻ thông tin qua mạng xã hội Tuy

Ngày đăng: 31/12/2022, 12:31

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN