it-swarm-vi.com

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?

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 giải pháp cho các bài viết với hàng ngàn chỉnh sửa (ví dụ: đ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ế).

14
Senseful

Nếu bạn nhấp vào liên kết View History 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 nút Compare selected version để 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 trên một tính năng đáng trách như vậy.

4
LBushkin

Sử dụng http://wikipedia.ramselehof.de/wikiblame.php?lang=en cho phép tìm kiếm các bản sửa đổi trên Wikipedia.

11
Andrew

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.

0
Oren Hizkiya

Một cách để làm điều đó là xuất lịch sử bài viết và sau đó xử lý các sửa đổi bằng cách sử dụng một công cụ cục bộ như _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ụng _Special: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 nó bằng một cái gì đó như _lxml.etree_ và 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 mỗi dòng.

Lưu ý: _Special:Export_ có 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.

0
Mechanical snail