1 điểm bởi GN⁺ 2024-12-15 | 1 bình luận | Chia sẻ qua WhatsApp
  • Trong viết kỹ thuật, những điểm yếu lặp đi lặp lại có thể được bộc lộ trước bằng kiểm tra tự động, thay vì để con người lần nào cũng phải chỉ ra; bài viết này giới thiệu 3 shell script có thể gắn vào quy trình build bài báo LaTeX
  • Mục tiêu không phải là cấm câu bị động hay một số cách diễn đạt nhất định, mà là giúp người viết nhìn vào các câu được đánh dấu và chọn cách diễn đạt rõ ràng, chính xác hơn
  • Các weasel words như various, quite, surprisingly, very, extremely làm giảm độ chính xác, nên có thể dùng biểu thức chính quy để phát hiện và thu hẹp các điểm cần rà soát
  • Kiểm tra câu bị động tìm các dạng -ed hoặc phân từ bất quy tắc đứng sau động từ be, còn kiểm tra từ lặp phát hiện các từ giống nhau đứng cạnh nhau theo cách không phân biệt chữ hoa/thường
  • Khi gom cả ba kiểm tra vào make proof, có thể chạy lặp lại ngay trong kho mã của bài báo và giảm việc các lỗi nhỏ tích tụ khiến bài viết bị xem là thiếu hiệu đính

Giảm các điểm yếu lặp lại trong viết lách bằng tự động hóa

  • Một phần đặc biệt khó trong việc hướng dẫn nghiên cứu sinh Ph.D. là dạy viết, và những vấn đề xuất hiện lặp lại có thể được công cụ lọc trước
  • Ba vấn đề mà các script nhắm tới là:
    • lạm dụng câu bị động
    • weasel words
    • lexical illusion, tức các từ lặp khó nhận ra bằng mắt
  • Các script này được tích hợp vào hệ thống build của tài liệu LaTeX để sử dụng
  • Vì các quy tắc viết lách luôn có ngoại lệ, mục đích không phải là cấm một cấu trúc ngữ pháp cụ thể
  • Khi một câu được tô nổi bật, người viết sẽ tự kiểm tra: “Có cách diễn đạt nào rõ ràng và chính xác hơn không?”
  • Nếu là lập trình viên, bạn có thể nhận biết các điểm yếu lặp lại của mình và dùng tự động hóa để giảm chúng

Sách đáng tham khảo cho viết kỹ thuật

Những điểm làm rò rỉ độ chính xác và sự rõ ràng

  • Olin Shivers từng dạy viết kỹ thuật như một sự cân bằng giữa độ chính xác, sự rõ ràng và marketing
  • Qua quá trình nộp bài báo, các điểm mà độ chính xác và sự rõ ràng suy yếu theo cách có thể nhận diện bằng máy trở nên lộ rõ
    • weasel words
    • lạm dụng câu bị động
  • Khó có thể tạo ra một shell script phát hiện cả phần marketing kém của một ý tưởng khoa học

Phát hiện weasel words

  • Weasel words là các từ hoặc cụm từ nghe có vẻ hay nhưng truyền tải rất ít thông tin, làm mờ độ chính xác của câu
  • Những weasel words thường thấy trong bài viết của sinh viên được chia thành ba nhóm
  • Salt and pepper words

    • Nghiên cứu sinh mới thường rắc vào câu những từ trông có vẻ kỹ thuật như gia vị, nhưng thực ra không truyền tải thông tin
    • Các cách diễn đạt tiêu biểu là various, a number of, fairly, quite
    • Loại bỏ các từ này sẽ làm câu mạnh hơn
    • It is quite difficult to find untainted samples.It is difficult to find untainted samples.
    • We used various methods to isolate four samples.We isolated four samples.
  • Beholder words

    • Beholder words là những từ có ý nghĩa thay đổi tùy theo người đọc
    • Ví dụ gồm interestingly, surprisingly, remarkably, clearly
    • Peer reviewer thường không thích các cách diễn đạt phán xét thay họ
    • Thay vì False positives were surprisingly low., nên viết kiểu To our surprise, false positives were low (3%). để nêu rõ con số và chủ thể quan sát
  • Lazy words và trạng từ

    • Lazy words là những từ được dùng để tránh đưa ra đặc tính định lượng, khiến khoa học trông thiếu chắc chắn và chưa hoàn chỉnh
    • Ví dụ tệ nhất là veryextremely, những từ khó được chấp nhận trong viết kỹ thuật
    • Các ví dụ khác gồm several, exceedingly, many, most, few, vast
    • Trong viết kỹ thuật, trạng từ có xu hướng trông giống weasel words
    • Trong bài viết kỹ thuật của nghiên cứu sinh mới, việc loại bỏ toàn bộ trạng từ nhiều khả năng sẽ có hiệu quả ròng dương
    • We offer a completely different formulation of CFA. kém hơn We offer a different formulation of CFA.
  • Script weasel words

    • Bash script định nghĩa danh sách weasel words mặc định bằng biểu thức chính quy và đánh dấu vị trí trong file đầu vào bằng egrep -i -n --color
    • Nếu danh sách mặc định không phù hợp, có thể dùng file danh sách thay thế
      • $HOME/etc/words/weasels
      • $WORDSDIR/weasels
      • words/weasels
    • Nếu không có tham số, script sẽ in hướng dẫn sử dụng dạng usage: <script> <file> ...

Xử lý câu bị động một cách có ý thức

  • Trong viết kỹ thuật, câu bị động không phải lúc nào cũng xấu
  • Tuy nhiên, hơn một nửa các bài viết kỹ thuật từng được biên tập có thể cải thiện chỉ bằng cách loại bỏ câu bị động
    • Sinh viên thường lạm dụng câu bị động hơn là dùng nó tốt
  • Câu bị động trở thành vấn đề khi nó che giấu thông tin liên quan hoặc có tính giải thích
    • Termination is guaranteed on any input. che giấu thông tin liên quan
    • Termination is guaranteed on any input by a finite state-space. có thêm thông tin liên quan, nhưng trọng tâm bị lệch
    • A finite state-space guarantees termination on any input. chứa thông tin liên quan và rõ nét hơn
  • Khi chủ thể hành động thật sự không quan trọng, câu bị động có thể tốt hơn
    • 4 mL HCl were added to the solution.
    • Tuy vậy, We added 4 mL HCl to the solution. cũng không bị xem là vấn đề nghiêm trọng
  • Câu hỏi để đánh giá câu bị động

    • Khi script đánh dấu câu bị động, hãy kiểm tra hai điều
      • Tác nhân có liên quan nhưng lại không rõ ràng không?
      • Nếu đổi sang câu chủ động thì bài viết có dễ đọc hơn không?
    • Nếu cả hai câu trả lời đều là “có”, hãy chuyển sang câu chủ động
    • Nếu chỉ câu hỏi đầu là “có”, hãy nêu rõ tác nhân
  • Script câu bị động

    • Bash script định nghĩa một danh sách dài các quá khứ phân từ bất quy tắc
    • Nó tìm mẫu trong đó sau am|are|were|being|is|been|was|be là khoảng trắng và \w+ed hoặc một phân từ bất quy tắc
    • Dùng egrep -n -i --color để hiển thị kèm tên file và số dòng

Từ lặp và lexical illusion

  • Khi có xuống dòng, các từ lặp như the the rất dễ bị mắt bỏ sót
  • Chỉ cần thay đổi vị trí xuống dòng, cùng một lỗi lặp đã hiện rõ hơn
  • Lặp từ là hiện tượng phát sinh trong quá trình soạn tài liệu điện tử và có vẻ đến từ lỗi cắt-dán
  • Nó đặc biệt thường xảy ra với the
  • Một từ lặp riêng lẻ sẽ không khiến bài báo bị từ chối, nhưng khi các lỗi nhỏ như lỗi chính tả và từ lặp tích tụ, chúng bộc lộ sự thiếu hiệu đính
  • Reviewer có thể diễn giải việc hiệu đính kém là thiếu tôn trọng thời gian và sự chú ý của họ
  • Script từ lặp

    • Perl script tìm các từ lặp liền kề
    • Nó đọc file theo từng dòng và tách theo ký tự không phải từ
    • Bỏ qua khoảng trắng, và khi gặp dấu câu thì đặt lại trạng thái từ cuối cùng
    • So sánh từ hiện tại với từ ngay trước đó sau khi chuyển về chữ thường; nếu giống nhau, in theo định dạng tên-file:số-dòng từ
    • Mã thoát là số lượng từ lặp tìm được

Tích hợp vào Makefile

  • Đặt bản sao cục bộ của các script trong thư mục bin/ của từng kho bài báo
  • Thêm quy tắc make proof vào Makefile
  • make proof chạy lần lượt ba kiểm tra trên các file *.tex
    • sh bin/weasel *.tex
    • sh bin/passive *.tex
    • perl bin/dups *.tex

Marketing bài báo và peer review

  • Nghiên cứu sinh ban đầu dễ nghĩ rằng chỉ cần viết toàn bộ sự thật thì sẽ được xuất bản
  • Nhưng có rất nhiều điều đúng, và ở các venue peer review hàng đầu cũng có rất nhiều bài báo đúng về mặt kỹ thuật
  • Peer review đã trở nên gần với vai trò quyết định điều đúng nào đáng được biết đến
  • Theo góc nhìn này, reviewer là người bảo vệ sự chú ý tập thể, nguồn lực hạn chế nhất của cộng đồng khoa học
  • Để marketing một bài báo, cần cho thấy một cách thuyết phục rằng ý tưởng đó xứng đáng được tiếp cận nguồn lực này

Công cụ liên quan và ý tưởng mở rộng

  • Benjamin Beckwith đã lấy cảm hứng từ các script này để tạo chế độ "writegood" cho Emacs
  • John Regehr đề xuất một script đơn giản để bắt các cụm từ thừa như Note that, Notice that
  • Những người khác đề xuất script phát hiện việc dùng thì tương lai trong viết kỹ thuật

1 bình luận

 
GN⁺ 2024-12-15
Ý kiến trên Hacker News
  • Những tài liệu đã giúp tôi cải thiện kỹ năng viết khi còn viết luận văn là How to Write Mathematics của Paul R. Halmos và Mathematical Writing của Donald E. Knuth cùng các tác giả khác
    Để nắm được cảm giác về giao tiếp rõ ràng và chính xác, tôi thường đọc Halmos trước; các gợi ý “Bad/Better/OK” khiến tôi nhớ đến những thảo luận từng thấy trong ghi chú bài giảng của Knuth và cộng sự
    Ở bước thứ ba, một linter như được đề xuất có thể hữu ích để bắt những chỗ còn sót
    Với bất kỳ ai viết về chủ đề có dính dáng dù chỉ một chút đến định nghĩa, tôi xem những tài liệu này là thiết yếu

    • Ngoài đề xuất đó, The Craft of Scientific Writing của M. Alley cũng rất hay
  • Nếu thích bài này và muốn biết thêm về một quy trình viết luận án tiến sĩ hiệu quả, bạn nên xem [1]
    Thật ra bất kỳ ai muốn cải thiện khả năng giao tiếp cũng đáng xem; đến mức nếu tôi phải trả tiền để truy cập video này thì cũng không thấy phí
    [1] https://youtu.be/vtIzMaLkCaM

    • Ước gì có một kho tập hợp “mọi điều cần biết khi bắt đầu chương trình tiến sĩ”
      Bao gồm cả những tài liệu nổi tiếng như phd grind
  • Tôi khó đồng ý với khá nhiều ví dụ
    Chẳng hạn, đổi “It is quite difficult to find untainted samples” thành “It is difficult to find untainted samples” thì quite difficult và chỉ difficult được đọc lên khá khác nhau
    Không phải câu văn tốt hơn, mà là ý nghĩa đã thay đổi
    Ngoài ra, việc viết “various methods” mang thông tin rằng không chỉ có một phương pháp; ở câu thứ hai thì thông tin đó bị mất

    • Ý nghĩa mà “quite” truyền tải có thể thay đổi rất nhiều tùy người đọc hoặc ngữ cảnh
      Khi nói, nó thay đổi nhiều theo ngữ điệu; xét nghiêm ngặt thì gần với “hơi khó”, nhưng ở nhiều nơi lại được dùng như “gần như bất khả thi”
      Tôi không cho rằng bỏ từ đó là sai, nhưng nghĩ nên thay bằng một cách diễn đạt so sánh cụ thể hơn
    • Chính vì kiểu này mà cuối cùng ta phải đọc một tài liệu thiết kế 30 trang trong khi 3 trang là đủ để nói cùng nội dung
      Đặc biệt với tài liệu kỹ thuật, nên thử hiểu vì sao người ta ghét lối viết trang trí đến vậy
      Đọc nhiều bài báo và thiết kế rồi sẽ thấy văn phong đó làm đời khổ sở
    • Nếu muốn nói rằng đã dùng nhiều phương pháp khác nhau, cứ viết cụ thể đã làm gì là được
      Viết kiểu “We isolated four samples using the following methods…” sẽ rõ ràng hơn
    • Phần lớn ví dụ trông rất tệ
      Đây chính là một trong những lý do khiến bài báo khoa học khó đọc ngay cả khi nói về nội dung đơn giản
      Cứ bám vào văn phong hình thức cứng nhắc mà chẳng ai thích, trong khi lại bỏ mất những tín hiệu ngữ cảnh tinh tế nhưng quan trọng
  • Nếu đang tìm thêm công cụ kiểu này, có thể xem vale.sh
    Có thể thêm nhiều loại hướng dẫn văn phong, bao gồm cả tránh các từ mơ hồ
    GitHub Action tôi dùng để chạy vale trên website vào thời điểm PR nằm ở đây: https://github.com/FusionAuth/fusionauth-site/blob/main/.git...
    Cấu hình ở đây: https://github.com/FusionAuth/fusionauth-site/tree/main/conf...
    Nó đã giúp cưỡng chế văn phong, nhưng có lẽ tôi chưa tận dụng hết chức năng

    • Vale.sh trông khá ổn
      Hiện tôi đang biên tập bản thứ 3 của một cuốn sách và vài bài viết trên website, nên có vẻ sẽ dùng được hữu ích
  • Tôi đã nhờ Claude chuyển các script Bash đó sang web UI, để có thể dán ngay mã vào và xem kết quả: https://tools.simonwillison.net/writing-style
    Nhật ký trò chuyện với Claude ở đây: https://gist.github.com/simonw/e9902ed1cbda30f90db8d0d22caa0...

    • Có vẻ nó không hoạt động đúng
      Hình như phần khớp mẫu thứ hai có vấn đề
      Ví dụ, nếu nhập “It is quite difficult to find untainted samples. We used various methods to isolate four samples.” thì “quite” được tìm trong “is quite difficult to find untainted samples.”, còn “various” lại được tìm trong chuỗi rỗng
      Dù vậy tôi vẫn thích những công cụ HTML/JS làm nhanh kiểu này
    • Tôi thắc mắc vì sao không để Claude tự rà soát bài viết luôn, thay vì bảo Claude viết những script Bash mong manh và hạn chế hơn
      Cũng có thể để Claude tự viết một prompt làm cùng chức năng hoặc làm tốt hơn
      Bash và Perl là những công cụ kiểu băng keo và kẹo cao su cho việc này, khá tệ; còn đây chính là việc Claude làm giỏi nhất
      Thay vì chỉ đánh dấu vấn đề, nó có thể cân nhắc các phương án và đề xuất bản sửa, lại không có những lỗi không khớp regex kỳ quặc tạo ra dương tính giả, âm tính giả và lỗi phân tích cú pháp
  • Unix thời kỳ đầu từng có các lệnh dictionstyle làm việc tương tự
    Có thể lấy từ GNU và cũng có trong Homebrew
    https://www.gnu.org/software/diction/
    Theo trí nhớ thì chúng không quá xuất sắc, và bộ công cụ lần này có lẽ cũng làm tốt ở mức tương tự

  • Trong lĩnh vực của tôi, chất lượng bài viết nằm ở mức quan trọng thấp nhất, thậm chí còn thấp hơn cả đánh giá giảng dạy
    Dù vẫn coi trọng câu văn rõ ràng và súc tích, nhưng nếu là nghiên cứu sinh thì có lẽ việc rèn khả năng thuyết trình, nhất là trước các câu hỏi mang tính đối đầu, và đáng buồn là cả khả năng nịnh nọt, sẽ hữu ích hơn
    Vâng, tôi có trải nghiệm cay đắng :p

    • Tìm một chuyên gia tư vấn tâm lý có thể còn quan trọng hơn cả khả năng thuyết trình
      Người ta bị dồn ép đến mức không chịu nổi, nhưng phần lớn trong đó là do tự mình tạo ra
      Lợi ích thực tế không cao như mức bạn phóng đại trong đầu, và mọi người đều muốn bạn vượt qua
    • Tôi không biết làm sao có thể biết được điều đó
      Tùy lĩnh vực, nhưng việc người phản biện không nhắc nhiều đến chất lượng bài viết không có nghĩa là nó không ảnh hưởng đến việc được chấp nhận
      Nếu làm người khác khó chịu, thì chính những cách khiến họ cảm thấy không đủ cốt lõi để viết vào bài review lại dễ khiến họ khắt khe hơn với cả những điểm bình thường họ có thể bỏ qua
      Tôi thừa nhận điều này không thỏa đáng vì khó phản chứng, và cũng thừa nhận rằng đôi khi lối viết tệ có chọn lọc có thể được dùng để che lấp lỗ hổng
  • Câu “Để tiếp thị một bài báo, tác giả phải đưa ra lý do thuyết phục rằng ý tưởng của mình xứng đáng được tiếp cận nguồn lực đó” cũng có nghĩa là tạp chí học thuật sẽ được lấp đầy không phải bằng những ý tưởng quan trọng nhất, mà bằng những bài báo được bán giỏi nhất
    Như tác giả nói, ngay cả những yếu tố bề mặt như lỗi chính tả khó phát hiện cũng có thể trở thành yếu tố quyết định vì người phản biện có thể tìm ra chúng
    Hãy thôi giả vờ có tính khách quan, và chấp nhận rằng các tạp chí học thuật phản ánh thị hiếu và quan điểm của biên tập viên
    Hoặc cứ đưa mọi thứ lên một nơi chuẩn như arxiv là được
    Việc tải PDF lên không có nguồn lực khan hiếm nào cả

    • Người thực sự đưa ra quyết định gần với người phản biện hơn là biên tập viên
      Nếu người phản biện cho điểm tốt hoặc điểm ổn, bài sẽ được xuất bản như vậy; nếu họ chê bài thậm tệ, biên tập viên sẽ phải ngồi thẳng lại và đánh giá xem tác giả đã phản ánh đầy đủ các bất mãn của người phản biện chưa
      Dù vậy, bên đặt ra tiêu chuẩn vẫn là người phản biện chứ không phải biên tập viên
    • Nhân tiện, cũng mong hệ thống trích dẫn được cải thiện để tài liệu tham khảo trở thành hyperlink, và có thể truy cập cả các sản phẩm mã nguồn
  • Hữu ích cho những người vì lý do nào đó không dùng emacs
    Quy trình chạy xong rồi quay lại chỉnh sửa khá phiền, nên có thể khó biến nó thành một workflow tốt
    Tác giả ghi công cho emacs “writegood”, nhưng plugin kiểm tra văn phong mà cá nhân tôi thích nhất là “artbollocks-mode”

  • Bài liên quan:
    Shell scripts to improve your writing - https://news.ycombinator.com/item?id=13295530 - tháng 1 năm 2017, 55 bình luận
    Shell scripts to improve your writing, or "My advisor rewrote himself in bash." - https://news.ycombinator.com/item?id=1529166 - tháng 7 năm 2010, 31 bình luận