国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【自然語言處理】用Python從文本中刪除個人信息-第二部分

這篇具有很好參考價值的文章主要介紹了【自然語言處理】用Python從文本中刪除個人信息-第二部分。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

自我介紹

  • 做一個簡單介紹,酒架年近48 ,有20多年IT工作經歷,目前在一家500強做企業(yè)架構.因為工作需要,另外也因為興趣涉獵比較廣,為了自己學習建立了三個博客,分別是【全球IT瞭望】,【架構師酒館】和【開發(fā)者開聊】,有更多的內容分享,謝謝大家收藏。
  • 企業(yè)架構師需要比較廣泛的知識面,了解一個企業(yè)的整體的業(yè)務,應用,技術,數據,治理和合規(guī)。之前4年主要負責企業(yè)整體的技術規(guī)劃,標準的建立和項目治理。最近一年主要負責數據,涉及到數據平臺,數據戰(zhàn)略,數據分析,數據建模,數據治理,還涉及到數據主權,隱私保護和數據經濟。 因為需要,比如數據資源入財務報表,另外數據如何估值和貨幣化需要財務和金融方面的知識,最近在學習財務,金融和法律。打算先備考CPA,然后CFA,如果可能也想學習法律,備戰(zhàn)律考。
  • 歡迎愛學習的同學朋友關注,也歡迎大家交流。微信小號【ca_cea】

【自然語言處理】用Python從文本中刪除個人信息-第二部分,數據安全,Python,數據隱私,自然語言處理,python,人工智能,個人信息,隱私保護,數據隱私

Python中隱私過濾器的實現,該過濾器通過命名實體識別(NER)刪除個人身份信息(PII)

這是我上一篇關于從文本中刪除個人信息的文章的后續(xù)內容。

GDPR是歐盟制定的《通用數據保護條例》。其目的是保護所有歐洲居民的數據。保護數據也是開發(fā)人員的內在價值。通過控制對列和行的訪問,保護行/列數據結構中的數據相對容易。但是免費文本呢?

在我上一篇文章中,我描述了一個基于正則表達式用法和禁止詞列表的解決方案。在本文中,我們添加了一個基于命名實體識別(NER)的實現。完整的實現可以在github PrivacyFilter項目中找到。

什么是命名實體識別?

根據維基百科,NER是:

命名實體識別(NER)(也稱為(命名)實體識別、實體分塊和實體提?。┦切畔⑻崛〉囊粋€子任務,旨在定位非結構化文本中提到的命名實體,并將其分類為預定義的類別,如人名、組織、位置、醫(yī)療代碼、時間表達式、數量、貨幣值、百分比等。

因此,這一切都是關于尋找和識別文本中的實體。一個實體可以是一個單詞或一系列連續(xù)的單詞。實體被分類到預定義的類別中。例如,在下面的句子中,發(fā)現了三個實體:實體人“Sebastian Thrun”、實體組織“Google”和實體日期“2007”。

【自然語言處理】用Python從文本中刪除個人信息-第二部分,數據安全,Python,數據隱私,自然語言處理,python,人工智能,個人信息,隱私保護,數據隱私

Example entity recognition (source:?Spacy.io)

NER是自然語言處理(NLP)人工智能領域的一個子集。該領域包含處理和分析自然語言的算法。當NER能夠用自然語言識別實體時,如果是個人、組織、日期或地點等與隱私相關的實體,則可以從文本中刪除這些實體。

使用NER過濾PII

首先,我們需要一個NLP處理包。NLP包是按語言訓練的,因為所有語言都有自己的語法。我們正在與達奇合作,所以我們需要一個了解這一點的人。我們將使用Spacy作為我們的隱私過濾器。

在Spacy網站上可以找到一個幫助安裝Spacy的工具。在選擇Python環(huán)境和語言后,它會給出相應的命令來安裝Spacy:

【自然語言處理】用Python從文本中刪除個人信息-第二部分,數據安全,Python,數據隱私,自然語言處理,python,人工智能,個人信息,隱私保護,數據隱私

Spacy install tool (source:?Spacy.io)

所選管道(效率或精度)決定了NER模型相對于尺寸和速度的精度。選擇“效率”會產生更小、更快的模型,但與“精度”相比精度更低。這取決于您的用例哪個模型更合適。為了發(fā)展,我們選擇使用效率模型。進行第一次凈入學率分析:

import spacy
nlp = spacy.load("nl_core_news_sm")
doc = nlp("Geert werkt sinds 2010 voor HAL.")
for token in doc:
    print(token.text, token.pos_, token.ent_type_)

'''
Output:
Geert PROPN PERSON
werkt VERB 
sinds ADP 
2010 NUM DATE
voor ADP 
HAL PROPN ORG
. PUNCT 
'''

在第2行導入Spacy包之后,將使用Spacy.load()方法加載模型。在這種情況下,加載了Dutch的有效模型。模型由其名稱指定,該名稱與上一步中用于下載模型的名稱相同。要切換到準確的荷蘭語模型,請將“nl_core_news_sm”替換為“nl_core _news_lg”。對于上面的示例,這將產生相同的輸出。

快速、簡單的性能測試表明,加載小型模型大約需要2.0秒,加載大型模型大約需要4.5秒。分析一個句子需要5.5毫秒,而不是6.0毫秒。大型號似乎需要大約500 MB的額外內存。

詞性(POS)標簽的含義可以在這個網站上找到。例如,它們是:

Geert PROPN PERSON     Proper noun, person
werkt VERB             Verb
sinds ADP              Adposition, case marking
2010  NUM DATE         Numeral, date
voor  ADB              Adposition
HAL   PROPN ORG        Proper noun, organisation
.     PUNCT            Punctuation

對于過濾PII,我們對POS類型NUM和PROPN感興趣。我們將用描述其實體類型的標簽來替換POS文本元素。

import spacy

string = "Geert werkt sinds 2010 voor HAL."
print(string)
nlp = spacy.load("nl_core_news_sm")
doc = nlp(string)

filtered_string = ""
for token in doc:
    if token.pos_ in ['PROPN', 'NOUN', 'NUM']:
        new_token = " <{}>".format(token.ent_type_)
    elif token.pos_ == "PUNCT":
        new_token = token.text
    else:
        new_token = " {}".format(token.text)
    filtered_string += new_token
filtered_string = filtered_string[1:]
print(filtered_string)

'''
Output:
Geert werkt sinds 2010 voor HAL.
<PERSON> werkt sinds <NUMBER> voor <ORG>.
'''

代碼的第一部分加載語言模型,并將輸入字符串解析為令牌列表(doc)。第8-16行中的循環(huán)通過迭代文檔中的所有標記來構建過濾后的文本。如果令牌的類型為PROPN、NOUN或NUMBER,則會用標記<…>替換,其中標記等于Spacy識別的實體類型。所有令牌都通過前綴空間連接到新字符串。前綴是必需的,因為標記化字符串已經刪除了這些前綴。如果是標點符號,則不添加前綴空格(第12-13行)。

在循環(huán)之后,由于第11行或第13行的原因,新字符串的第一個字符是一個空格,因此我們需要刪除這個空格(第17行)。這導致字符串中沒有隱私信息。

它有多好?

在上一篇文章中,我們已經建立了一個基于禁止詞列表的隱私過濾器。與NER相比,該學徒需要更多的代碼和精力。但它們的比較如何?

  • NER要求語法正確的句子。在這種情況下,即使姓名拼寫錯誤,也可以很好地替換隱私信息。NER優(yōu)于禁言表。
  • 無論上下文如何,禁詞過濾器都會替換禁詞。尤其是街道名稱和城市名稱的列表會導致大量不必要的刪除詞。例如,植物名稱、動物或城堡等項目等單詞作為街道名稱很常見,將從文本中刪除。這可能會刪除許多不必要的單詞,從而降低生成文本的可用性。NER的表現會更好。
  • 如果文本在語法上不正確(例如,“你叫什么名字?”問題的答案“Peter”將不會被NER過濾為正確。這些句子在聊天信息和對話記錄中很常見。在這些情況下,NER方法將失敗,因為NER算法無法用一個或幾個詞來確定這些答案的性質。

因此,這完全取決于您的用例和所需的過濾級別。該組合確定最佳方法是使用禁止列表版本、NER版本還是甚至兩者的組合。后者將結合這兩種方法的優(yōu)點(但也有部分缺點)。要找到最佳方法,請使用數據的子集來篩選和測試不同的算法和/或組合,以找到最適合的算法。

將NER與禁止詞列表(FWL)進行比較的一些示例:

INPUT: Geert werkt sinds 2010 voor HAL.
NER  : <FILTERED> werkt sinds <FILTERED> voor <FILTERED>.
FWL  : <FILTERED> werkt sinds <FILTERED> voor HAL.
INPUT: Heert werkt sinds 2010 voor HAL.
NER  : <FILTERED> werkt sinds <FILTERED> voor <FILTERED>.
FWL  : Heert werkt sinds <FILTERED> voor HAL.
INPUT: Wat is je naam? Geert.
NER  : Wat is je naam? Geert.
FWL  : Wat is je naam? FILTERED.
INPUT: Geert kijkt naar de duiven op het dak.
NER  : <FILTERED> kijkt naar de duiven op het dak.
FWL  : <FILTERED> kijkt naar de <FILTERED> op het dak.

(為了便于比較,所有標簽(如<PERSON>)都替換為通用標簽<FILTERED>)

  • 第一個示例顯示tat FWL無法刪除公司名稱,因為它沒有公司名稱列表。NER算法在句子上確定了“HAL”是一個名詞,更具體地說是一個組織。
  • 第二個例子表明,NER可以處理名稱中的類型錯誤,因為它查看句子的結構,而FWL不將“Heert”識別為名稱。名稱列表只包含拼寫正確的版本。
  • 第三個例子表明,NER需要語法正確的句子來識別“Geert”這個名字。這可能是一次談話的記錄,也可能是聊天中的互動。它展示了NER如何在書面語言方面表現良好,但在理解口語方面存在困難。
  • 在最后一個例子中,FWL刪除了“duiven”一詞,因為它不僅描述了動物(duiven在荷蘭語中是鴿子的意思),而且還是一個城市的名字。

privacy filter code on Github?包含這兩種方法,在初始化過程中可以選擇NER方法或FWL方法。我們在本文中沒有涉及正則表達式,但選擇NER方法也會執(zhí)行正則表達式(NER無法識別和替換URL等)。它還包含了一些使用和過濾的示例文本,以了解兩種方法在現實生活中的美國案例中的差異。

最后一句話

本文和前一篇文章描述了刪除文本中個人信息的兩種方法。這兩種方法都有其優(yōu)點和缺點,不可能為所有用例選擇一種方法。刪除更多的隱私信息也會導致刪除更多的非隱私信息,從而降低過濾文本的價值。NER在刪除已識別的隱私信息方面更準確,但需要格式良好的句子才能操作。為了最大限度地提高安全性,甚至可以將這兩種方法結合起來。請隨意在Github上嘗試實現。

我希望你喜歡這篇文章。想要獲得更多靈感,請查看我的其他文章

本文:【自然語言處理】用Python從文本中刪除個人信息-第二部分 | 開發(fā)者開聊

歡迎收藏??【全球IT瞭望】,【架構師酒館】和【開發(fā)者開聊】.文章來源地址http://www.zghlxwxcb.cn/news/detail-766686.html

到了這里,關于【自然語言處理】用Python從文本中刪除個人信息-第二部分的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【Python入門系列】第十八篇:Python自然語言處理和文本挖掘

    【Python入門系列】第十八篇:Python自然語言處理和文本挖掘

    Python自然語言處理(Natural Language Processing,簡稱NLP)和文本挖掘是一門涉及處理和分析人類語言的學科。它結合了計算機科學、人工智能和語言學的知識,旨在使計算機能夠理解、解釋和生成人類語言。 NLTK(Natural Language Toolkit):它是Python中最受歡迎的NLP庫之一,提供了豐

    2024年02月15日
    瀏覽(36)
  • 自然語言處理3——玩轉文本分類 - Python NLP高級應用

    自然語言處理3——玩轉文本分類 - Python NLP高級應用

    隨著信息時代的不斷發(fā)展,海量的文本數據成為我們獲取知識和信息的重要來源。如何高效地從這些文本中提取有用的信息,成為數據分析和數據挖掘領域的熱門問題之一。本文將介紹文本分類在自然語言處理(NLP)中的高級應用,通過Python實現,讓你輕松玩轉文本分類。

    2024年02月03日
    瀏覽(43)
  • 自然語言處理—文本分類綜述/什么是文本分類

    自然語言處理—文本分類綜述/什么是文本分類

    最近在學習文本分類,讀了很多博主的文章,要么已經嚴重過時(還在一個勁介紹SVM、貝葉斯),要么就是機器翻譯的別人的英文論文,幾乎看遍全文,竟然沒有一篇能看的綜述,花了一個月時間,參考了很多文獻,特此寫下此文。 https://www.processon.com/mindmap/61888043e401fd453a21e

    2023年04月08日
    瀏覽(31)
  • 自然語言之文本預處理

    自然語言之文本預處理

    概念 分詞就是將連續(xù)的字序列按照一定的規(guī)范重新組合成詞序列的過程。在英文的行文中,單詞之間是以空格作為自然分界符的,而中文只是字、句和段能通過明顯的分界符來簡單劃界,唯獨詞沒有一個形式上的分界符。分詞過程就是找到這樣分界符的過程. 作用 詞作為語言

    2024年02月06日
    瀏覽(28)
  • 自然語言處理-文本表示: Embedding技術

    目錄 I. 引言 A. 文本表示介紹 B. 引入Embedding技術的重要性和應用領域 II. 傳統(tǒng)文本表示方法 A. One-Hot編碼 B. 詞袋模型 C. TF-IDF III. 什么是文本表示-Embedding A. 定義和概念 B. Embedding的目標和作用 IV. 常見Embedding技術 A. Word2Vec 1. CBOW模型 2. Skip-gram模型 3. 結構與訓練方法 B. GloVe 1. 全局

    2024年02月16日
    瀏覽(94)
  • 【自然語言處理】實驗3,文本情感分析

    【自然語言處理】實驗3,文本情感分析

    清華大學馭風計劃課程鏈接? 學堂在線 - 精品在線課程學習平臺 (xuetangx.com) 代碼和報告均為本人自己實現(實驗滿分),只展示主要任務實驗結果,如果需要詳細的實驗報告或者代碼可以私聊博主 有任何疑問或者問題,也歡迎私信博主,大家可以相互討論交流喲~~ 情感分析

    2024年02月19日
    瀏覽(23)
  • 自然語言處理實戰(zhàn)9-大語言模型的訓練與文本生成過程

    大家好,我是微學AI,今天給大家介紹一下自然語言處理實戰(zhàn)項目9-大語言模型的訓練與文本生成過程,詳細步驟介紹。大語言模型的訓練是通過深度學習技術實現的。首先,需要準備一個龐大的文本數據集作為訓練樣本,這些文本可以是網頁、書籍、新聞等大量的非結構化文

    2024年02月07日
    瀏覽(29)
  • 【自然語言處理(NLP)】基于ERNIE語言模型的文本語義匹配

    【自然語言處理(NLP)】基于ERNIE語言模型的文本語義匹配

    作者簡介 :在校大學生一枚,華為云享專家,阿里云專家博主,騰云先鋒(TDP)成員,云曦智劃項目總負責人,全國高等學校計算機教學與產業(yè)實踐資源建設專家委員會(TIPCC)志愿者,以及編程愛好者,期待和大家一起學習,一起進步~ . 博客主頁 : ぃ靈彧が的學習日志

    2024年02月10日
    瀏覽(31)
  • 自然語言處理 Paddle NLP - 檢索式文本問答-理論

    自然語言處理 Paddle NLP - 檢索式文本問答-理論

    基礎 自然語言處理(NLP) 自然語言處理PaddleNLP-詞向量應用展示 自然語言處理(NLP)-前預訓練時代的自監(jiān)督學習 自然語言處理PaddleNLP-預訓練語言模型及應用 自然語言處理PaddleNLP-文本語義相似度計算(ERNIE-Gram) 自然語言處理PaddleNLP-詞法分析技術及其應用 自然語言處理Pa

    2024年02月11日
    瀏覽(26)
  • SpringBoot進行自然語言處理,利用Hanlp進行文本情感分析

    SpringBoot進行自然語言處理,利用Hanlp進行文本情感分析

    . # ??前言 本文主要是SpringBoot進行自然語言處理,利用Hanlp進行文本情感分析,如果有什么需要改進的地方還請大佬指出?? ??作者簡介:大家好,我是青衿?? ??博客首頁:CSDN主頁放風講故事 ??每日一句:努力一點,優(yōu)秀一點 自然語言處理已經進入大模型時代,然而

    2024年02月05日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包