[測試] 已刪文
發案人:曾先生
聯絡方式1:站內信
聯絡方式2:站內信聯繫後交換Skype,WhatsApp,Line或Telegram
所在地區 :海外(UTC+2)
有效時間:自宣告接案起16小時(以程式碼最後上傳時間認定)。
為保障接案者,本人聲明同一時間僅宣告一位接案者(會推文更新已宣告/解約/結案),
亦不接受非接案者搶答。
但接案者若逾時,則視同專案失敗解約,本人將逕行與下一位有意者面談。
專案說明:修改newspaper3k程式庫(Python) 解決句子分割問題。
詳見附註。
預算:NT$10000(估計合格接案者能以10個工時解決)
接案者要求:
1. 有能力深入Python開源程式庫(newspaper3k)修正問題程式碼。
2. 熟悉 Python 下的新聞網頁處理,包括下列程式庫的使用:
newspaper3k(必), lxml(必), beautifulsoup4(選)
3. 工作成果須保密至2024-05-31 (有不方便的理由導致無法立刻開源)
附註:
一、問題描述
* newspaper3k 是一個用來解析新聞網頁的 Python 程式庫。但它有一個問題:就是處理
英語新聞的時候,parse 出來的文章不時會發生前一句的句點跟下一句的首個字母之間漏
掉空白字元的情形。例如"...in the city.The mayor said..."這樣。這會導致兩個句子
被錯誤的辨識成同一句,句子長度加長、文法結構無法正確解析,進而對訓練RNN系統的
AI模型帶來負面影響。
下面是一些問題文章範例:
https://tinyurl.com/2cz9vxx5
https://bulawayo24.com/news/national/169936
https://tinyurl.com/bfdk3kdn
https://www.jpost.com/Opinion/Another-tack-Sympathy-for-the-scarecrow-415892
下列程式碼可以驗證上述文章經newspaper3k解析後,部份句子之間遺漏空白。
===========================================================
from newspaper import Article
url = ""
article = Article(url=url, fetch_images=False)
article.download()
article.parse()
print(article.text)
===========================================================
二、解決方案要求
1. 接案者須將成果上傳至發案者的GitHub或GitLab(聯繫時取得存取權限,成功存取
即開始計時),並新增一個pull request。專案完成時刻以程式碼最後推送的時間認定。
2. 完成後請聯繫發案者Demo,解釋程式碼修正了哪些邏輯,並以單元測試或直接執行
等適當方式證明解方有效。Demo出錯可容許當場做出3分鐘以內的小修正。如修正超時
或問題未解決,視同專案完全失敗。
3. 上面提供的4個案例皆須成功解析,否則視同專案完全失敗。
4. 恕不能接受下列解法:
(A) 用類似 "[a-z]\.[A-Z]" 的 regex 去直接拆分解析後的文本裡頭的句子:
團隊已經確認過這種事後解法基本不能接受,因為太容易把 A.B.Smith, U.S.A
或 Article 33.A.1 之類的名詞拆掉,造成NER模型的正確性更糟。
(B) 更換library:目前團隊沒有時間與資源去驗證使用新的library會不會撞上不存在
於newspaper3k的新問題。
(C) 使用AI模型:我們每天處理幾十萬篇文章,計算成本太高。
(D) 能正確的分隔句子,但文章其他部份出現原本沒有的損壞。
(E) 最後,雖然有能力修正開源程式庫的先進顯然不會這樣取巧,但下面這點還是
要提一下,以防有心人士引起糾紛:
只為了通過單元測試,而根據特定網頁或特定的domain name去做個案處理的方式,
是不可接受的。例如:if "jpost.com" in article.url,這種針對單一網站的處理
邏輯,就不可接受。
當然,如果認定某一類別的網頁結構是元兇,是可以撰寫特殊邏輯去處理的。但這個結構
必須能夠適用複數的新聞網站。舉兩個例子:
例1:假設您認定 <br /> 沒有被正確處理,那麼嘗試在執行 article.parse()之前,
先把網頁內容取代成換行符號是OK的,因為顯然許多新聞網頁都包含<br />的元素
(這邊只是舉例....我試過但似乎沒用)。
例2:找到 itemprop="articleBody" 之類的區塊做特殊處理,也是屬於一般性的邏輯
感謝您的耐心閱讀!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 77.161.173.88 (荷蘭)
※ 文章網址: https://www.ptt.cc/bbs/Test/M.1685868525.A.009.html
討論串 (同標題文章)