Làm thế nào tôi có thể tìm ra ai đã viết một phần nhất định của một bài viết trên Wikipedia?


14

Các hệ thống kiểm soát phiên bản thường gọi tính năng này là "đổ lỗi cho ai đó". Đối với mỗi dòng, nó cho bạn thấy ai đã sửa đổi nó và khi nào.

Cập nhật: Tôi đang tìm kiếm một giải pháp cho các bài viết với hàng ngàn chỉnh sửa (nghĩa là điều hướng lịch sử phiên bản và kiểm tra từng bài viết là không thực tế).


1
Hướng dẫn cụ thể để sử dụng WikiBlame (để tìm ra ai đã viết một cụm từ cụ thể) có thể được tìm thấy ở đây: webapps.stackexchange.com/questions/35906/ trên
Anderson Green

Câu trả lời:


4

Nếu bạn nhấp vào View Historyliên kết cho một bài viết, bạn có thể thấy danh sách các thay đổi được thực hiện cho bài viết đó, vào ngày nào và bởi ai. Một bản tóm tắt ngắn của mô tả thay đổi cũng được hiển thị. Sau đó bạn có thể nhấp vào Compare selected versionnút để so sánh văn bản.

Thật không may, tôi không biết tính năng Đổ lỗi cho phép bạn trực tiếp xem ai đã thực hiện các thay đổi đối với một dòng hoặc câu hoặc đoạn cụ thể.

EDIT: Bạn có thể muốn kiểm tra trang web của Greg Hewill , anh ấy (dường như) đang làm việc với một tính năng đáng trách như vậy.


Điều này là đơn giản cho các bài viết ngắn. Tuy nhiên, khi bạn có một bài viết với hàng trăm hoặc hàng ngàn chỉnh sửa, nó trở nên khó hơn nhiều. Tôi đang tìm kiếm điều ngược lại. Bạn đưa ra một dòng và nó cho bạn biết người dùng.
Ý thức

Liên kết mà bạn đã đăng chính xác là loại mà tôi đang tìm kiếm.
Ý thức

Tôi rất vui vì bạn đã tìm thấy những gì bạn cần: D
LBushkin


0

Bạn có thể làm điều này bằng cách nhấp vào "View History"nằm ở góc trên bên phải của mỗi bài viết trên wikipedia. Ở đó bạn sẽ tìm thấy một danh sách các sửa đổi của một bài viết. Nếu bạn muốn cụ thể được cam kết bởi mỗi người dùng, bạn có thể nhấp vào "cur"bên cạnh mỗi sửa đổi và wikipedia sẽ nêu bật những gì đã thay đổi.


Tôi đã cập nhật câu hỏi giải thích tại sao phương pháp này không tốt cho các bài viết có hàng ngàn phiên bản.
Ngày

Có vẻ như câu trả lời của OpenBSDWiki là đúng. Đó không phải là những gì bạn đang tìm kiếm?
Oren Hizkiya

0

Một cách để làm điều đó là xuất lịch sử bài viết, sau đó xử lý các sửa đổi bằng cách sử dụng một công cụ cục bộ như thế nào git blame. Điều này có thể được thực hiện bằng cách sử dụng một kịch bản.

Để xuất lịch sử bài viết, sử dụngSpecial:Export , cụ thể : https://en.wikipedia.org/w/index.php?title=Special:Export&history=1&action=submit&pages=Blinkenlights.

Để tạo lỗi, trước tiên hãy thêm các sửa đổi vào kho git tạm thời (hiển thị trong Python 3):

import tempfile
import subprocess
with tempfile.TemporaryDirectory() as repo:
    os.chdir(repo.name)
    subprocess.check_call(['git', 'init'])

Sau đó tải xuống XML lịch sử đã xuất, phân tích cú pháp bằng một cái gì đó giống như lxml.etreevà lặp lại các bản sửa đổi (xpath //revision). Đối với mỗi sửa đổi, hãy viết văn bản vào một tệp (giả sử article.wiki), đọc tác giả và chạy

subprocess.check_call(['git', 'commit', '-a', '-m', 'blah', '--author=' + str(author)])

Sau khi tất cả các sửa đổi được thêm vào repo, hãy chạy git blame article.wikiđể xem tác giả của từng dòng.

Lưu ý: Special:Exportcó thể hạn chế số lần sửa đổi được xuất, do đó, trong các trang có lịch sử lâu dài, bạn có thể phải tìm nạp XML nhiều lần.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.