messenger_logo
Liên hệ qua Messenger
SciEco

Cách tự động hóa thu thập dữ liệu twitter trực tiếp vào phần mềm stata

I
IEFPA
Ngày viết: 13/07/2026

Trong nghiên cứu khoa học dữ liệu và phân tích mạng xã hội, việc thu thập dữ liệu thực tế từ các nền tảng trực tuyến đóng vai trò vô cùng quan trọng. Trước đây, nhiều người dùng thường thắc mắc liệu phần mềm Stata có khả năng nhập trực tiếp dữ liệu từ mạng xã hội Twitter hay không. Để giải quyết nhu cầu này, việc phát triển các lệnh mở rộng tận dụng giao diện lập trình ứng dụng Java cải tiến trên các phiên bản Stata hiện đại đã mang lại lời giải hoàn hảo. Bài viết này sẽ hướng dẫn bạn cách sử dụng công cụ twitter2stata để kết nối, xác thực và khai thác dữ liệu từ Twitter về môi trường làm việc Stata một cách nhanh chóng.

Cài đặt công cụ twitter2stata

Trước khi tiến hành khai thác thông tin, bạn cần thực hiện cài đặt bộ công cụ này trực tiếp từ kho lưu trữ SSC của cộng đồng Stata. Hãy mở phần mềm và chạy dòng lệnh sau trong cửa sổ dòng lệnh.

1ssc install twitter2stata, replace

Các tính năng khai thác dữ liệu cốt lõi

Sau khi quá trình cài đặt hoàn tất, bộ lệnh cung cấp cho bạn nhiều tùy chọn mạnh mẽ để truy xuất dữ liệu phù hợp với từng mục tiêu nghiên cứu cụ thể.

Tìm kiếm bài viết theo từ khóa

Nếu nghiên cứu của bạn cần thu thập các bài viết có chứa nội dung hoặc chủ đề cụ thể, bạn có thể thực hiện tìm kiếm bằng cú pháp dưới đây.

1twitter2stata searchtweets "search_string"

Tìm kiếm thông tin người dùng

Để tìm kiếm thông tin của các tài khoản dựa trên một cụm từ khóa tìm kiếm cụ thể, lệnh dưới đây sẽ giúp bạn liệt kê danh sách tài khoản tương ứng.

1twitter2stata searchusers "search_string"

Truy xuất dữ liệu của một tài khoản cụ thể

Khi đã xác định được định danh người dùng hoặc tên tài khoản chính xác, bạn có thể tải toàn bộ hồ sơ thông tin của tài khoản đó về Stata.

1twitter2stata getuser "userId_or_userName"

Thu thập danh sách tương tác và mạng lưới người dùng

Để phân tích mạng lưới xã hội, bạn có thể dễ dàng tải về danh sách những người theo dõi, danh sách đang theo dõi, các lượt thích hoặc các nhóm danh sách của một người dùng cụ thể bằng các lệnh sau.

1twitter2stata likes "userId_or_userName"
2twitter2stata following "userId_or_userName"
3twitter2stata followers "userId_or_userName"
4twitter2stata lists "userId_or_userName"

Trích xuất dữ liệu từ các danh sách nhóm chuyên biệt

Bên cạnh đó, nếu bạn quan tâm đến một danh sách nhóm được phân loại sẵn trên Twitter, hai câu lệnh sau sẽ hỗ trợ thu thập thông tin thành viên cũng như các bài viết được đăng tải trong nhóm đó.

1twitter2stata listusers "listId_or_listName"
2twitter2stata listtweets "listId_or_listName"

Hướng dẫn thiết lập tài khoản và ứng dụng Twitter

Để các câu lệnh trên có thể hoạt động ổn định và nhận được giới hạn băng thông tải xuống tốt nhất từ hệ thống, bạn cần sở hữu một tài khoản Twitter và đăng ký một ứng dụng dành cho nhà phát triển để lấy các khóa bảo mật.

Đầu tiên, hãy truy cập vào trang quản lý ứng dụng của Twitter tại địa chỉ apps.twitter.com sau khi đã đăng nhập tài khoản. Giao diện trang quản lý sẽ xuất hiện như bên dưới.

Tiếp theo, bạn nhấp chuột vào nút tạo ứng dụng mới trên màn hình.

Tại đây, hệ thống yêu cầu điền đầy đủ thông tin vào ba trường bắt buộc bao gồm tên ứng dụng, mô tả ứng dụng và địa chỉ trang web của bạn. Lưu ý rằng tên của ứng dụng phải là duy nhất trên toàn hệ thống, vì thế bạn có thể cần thử một vài tên khác nhau trước khi thành công. Sau khi hoàn thành biểu mẫu, hãy nhấp vào nút tạo ứng dụng Twitter của bạn.

Sau đó, bạn chuyển sang thẻ quản lý khóa và mã truy cập rồi nhấp vào nút tạo mã truy cập để hệ thống tự động sinh các chuỗi ký tự bảo mật cá nhân.

Lúc này, hệ thống sẽ cung cấp cho bạn bốn chuỗi mã khóa quan trọng bao gồm Consumer Key, Consumer Secret, Access Token và Access Token Secret.

Hãy sao chép các chuỗi mã này và dán chúng vào một tệp lệnh do-file dưới dạng các biến cục bộ để sử dụng lâu dài như cấu trúc dưới đây. Bạn lưu ý bảo mật tuyệt đối các thông tin này và không chia sẻ cho bất kỳ ai khác.

1local consumer_key "xWNlx*N9vESv0ZZBtGdm7fVB"
2local consumer_secret "7D25oVzWeDCHrUlQcp9929@GOcnqWCuUKhDel"
3local access_token "74741598400768-3hAYpZbiDvABPizx5lk57B8CTVyfa"
4local access_token_secret "7HjDf25oVzDWAeDCHrUlQcpfNGOTzcnqWCuUKhDel"

Khởi tạo quyền truy cập và chạy thử nghiệm trong Stata

Trước khi thực hiện bất kỳ lệnh tìm kiếm dữ liệu nào trong mỗi phiên làm việc mới với Stata, bạn bắt buộc phải chạy lệnh khai báo quyền truy cập bằng các mã khóa đã lưu. Nếu bạn quên bước khai báo này, Stata sẽ trả về thông báo lỗi hệ thống.

1. twitter2stata searchtweets "star wars", numtweets(10)
2access token and access token secret not set.
3Run
4twitter2stata setaccess
5to set your access token and access token secret.
6r(198);

Để quá trình vận hành diễn ra trơn tru, một cấu trúc hoàn chỉnh của tệp lệnh do-file chứa cả phần khai báo xác thực lẫn phần tìm kiếm dữ liệu thực tế sẽ được trình bày như sau.

1local consumer_key "xWNlx*N9vESv0ZZBtGdm7fVB"
2local consumer_secret "7D25oVzWeDCHrUlQcp9929@GOcnqWCuUKhDel"
3local access_token "74741598400768-3hAYpZbiDvABPizx5lk57B8CTVyfa"
4local access_token_secret "7HjDf25oVzDWAeDCHrUlQcpfNGOTzcnqWCuUKhDel"
5twitter2stata setaccess "`consumer_key'" "`consumer_secret'" ///
6     "`access_token'" "`access_token_secret'"
7twitter2stata searchtweets "star wars", numtweets(10)
8list user_screen_name user_follower_count user_friend_count, abbreviate(20)

Khi bạn tiến hành khởi chạy tệp lệnh trên, Stata sẽ tự động gửi yêu cầu kết nối đến máy chủ của Twitter, tải về mười bài viết mẫu và hiển thị kết quả trực quan ngay lập tức dưới dạng bảng dữ liệu có cấu trúc.

1. twitter2stata searchtweets "star wars", numtweets(10)
2(45 vars, 10 obs)
3. list user_screen_name user_follower_count user_friend_count, abbreviate(20)
4+------------------------------------------------------------+
5     | user_screen_name   user_follower_count   user_friend_count |
6     |------------------------------------------------------------|
7  1. |            024AB                  1297                1077 |
8  2. |     StarWarsTime                  2040                1213 |
9  3. |      LockerGnome                 24577                 976 |
10  4. |           CMG_HD                     8                  35 |
11  5. |   dilnyminic1986                     4                  30 |
12     |------------------------------------------------------------|
13  6. |     StarWarsTime                  2040                1213 |
14  7. |   emimsohood1975                     3                   8 |
15  8. |  Dan_NinjaRabbit                   712                2252 |
16  9. |  KatelynLunsford                    13                  38 |
17 10. |        PudseyMac                   335                 444 |
18     +------------------------------------------------------------+

Lưu ý về giới hạn tần suất gọi API

Một điểm cực kỳ quan trọng cần ghi nhớ khi làm việc với dữ liệu mạng xã hội đó là các quy định về giới hạn lưu lượng tải. Mỗi câu lệnh con của công cụ này đều bị kiểm soát bởi một định mức truy cập riêng biệt do Twitter thiết lập cho mỗi chu kỳ mười lăm phút. Bạn nên tìm hiểu kỹ bảng quy định giới hạn tần suất gọi API của hệ thống trước khi xây dựng các kịch bản thu thập dữ liệu tự động với quy mô lớn nhằm tránh việc tài khoản ứng dụng bị tạm khóa do vượt quá định mức cho phép.

✨ Khả năng tích hợp linh hoạt giữa ngôn ngữ Java và nền tảng Stata không chỉ giúp mở rộng giới hạn phân tích số liệu truyền thống mà còn mang lại giải pháp thu thập trực tiếp nguồn dữ liệu mạng xã hội khổng lồ về máy tính của bạn chỉ bằng vài dòng lệnh đơn giản.

Câu hỏi tư duy và bài tập thực hành:

Giả sử bạn đang thực hiện một đề tài nghiên cứu thị trường về sự quan tâm của cộng đồng đối với lĩnh vực trí tuệ nhân tạo. Hãy viết một đoạn mã ngắn trong tệp lệnh do-file để thực hiện tìm kiếm mười bài viết gần nhất chứa từ khóa trí tuệ nhân tạo, sau đó sử dụng lệnh hiển thị danh sách của Stata để kiểm tra tên người dùng và số lượng người theo dõi của họ. Bạn có nhận xét gì về mối liên hệ giữa mức độ phổ biến của tài khoản và tần suất đăng bài về chủ đề này không?


Bài viết khác
Trong hành trình phát triển các lệnh ước lượng chuyên sâu trong Stata, việc tích hợp mã nguồn từ ngôn ngữ khác như C, C++ hay Java mở ra một thế giới mới về hiệu suất và khả năng tùy biến. Một trong những kỹ thuật mạnh mẽ nhất là viết plugin — hay còn gọi là thư viện liên kết động (DLL) — để tận dụng sức mạnh của C trong môi trường Stata. Bài viết này là phần thứ hai trong chuỗi chuyên đề “Viết một lệnh ước lượng trong Stata”, tiếp nối bài trước về việc chuẩn bị viết plugin. Ở đây, chúng ta sẽ xây dựng một plugin C thực hiện chính xác các phép tính mà hàm mymean_work() trong tệp mymean11.ado đã làm. Mục tiêu không chỉ là minh họa cách giao tiếp giữa C và Stata, mà còn cung cấp một nền tảng vững chắc cho các tính toán hiệu suất cao trong các mô hình kinh tế lượng phức tạp. Viết một plugin C đơn giản: “Hello, C!” Trước khi tiến vào tính toán thực tế, hãy bắt đầu bằng một ví dụ đơn giản: một plugin C hiển thị thông điệp “Hello from C” trong cửa sổ Stata. Mã nguồn cho myhello.ado được trình bày như sau:
Trong bài viết trước, chúng ta đã xây dựng một đường ống phân tích văn bản sử dụng quanteda. Quy trình đó tạo ra ma trận đặc trưng văn bản (DFM), áp dụng trọng số TF-IDF và đo lường sự tương đồng qua cosine similarity. Tuy nhiên, phương pháp này bộc lộ một hạn chế căn bản: cosine similarity tính trên các vector TF-IDF thưa chỉ phản ánh sự trùng lặp từ vựng, chứ không nắm bắt được ý nghĩa ngữ nghĩa. Xét ví dụ hai câu: "Người vay nợ không thực hiện nghĩa vụ trả nợ" và "Khách hàng không đáp ứng được cam kết trả nợ". Sau khi loại từ dừng, chúng không chia sẻ từ vựng nào, dẫn đến độ tương đồng TF-IDF gần như bằng 0. Dù vậy, bất kỳ аналитик nào cũng nhận ra chúng mang ý nghĩa như nhau. Giải pháp nằm ở vector nhúng dày đặc (dense embeddings) — biểu diễn thần kinh nơi các văn bản mang ý nghĩa gần nhau được ánh xạ đến các vị trí lân cận trong không gian vectơ. Nhờ đó, chúng ta có thể đo lường sự tương đồng ngữ nghĩa ngay cả khi không có từ chung. Bài viết này sẽ hướng dẫn xây dựng một đường ống Tạo sinh tăng cường truy xuất (RAG) trong R, sử dụng ragnar cho kho truy xuất và ellmer cho tương tác mô hình ngôn ngữ lớn (LLM), minh họa sức mạnh của nhúng dày đặc trong truy xuất và sinh câu trả lời. Toàn bộ quy trình chạy cục bộ nhờ Ollama.
SciEco
Science for Economics
Định hướng đào tạo phân tích dữ liệu, xây dựng chính sách, tối ưu hoá danh mục tài chính cá nhân và dự báo thị trường.
Liên hệ
Địa chỉ: Số 60, ngõ 41, Phố Thái Hà, Trung Liệt, Đống Đa, Hà Nội (Google Map)
Email: [email protected]
Hotline: 03.57.94.7680 (Mrs. Hà)
Mạng xã hội