python如何使用正則提取文章所有形容詞

在Python中使用正則表達式提取文章中的形容詞需要結合語言特性處理。以下是分步解決方案:

  1. 英文場景解決方案(推薦使用專業NLP庫):
import re
import nltk
nltk.download('averaged_perceptron_tagger')  # 首次使用需要下載text = "The quick brown fox jumps over the lazy dog. Interesting discoveries await us."# 方法1:正則表達式基礎匹配(準確性有限)
# 匹配常見形容詞后綴模式
adj_pattern = r'\b\w+(?:able|ible|al|ful|ic|ive|less|ous|y|ed|ing)\b(?!\s*[\w-]+)'
adjectives = re.findall(adj_pattern, text, flags=re.IGNORECASE)# 方法2:使用nltk詞性標注(推薦)
words = nltk.word_tokenize(text)
tagged = nltk.pos_tag(words)
proper_adjectives = [word for word, pos in tagged if pos in ['JJ', 'JJR', 'JJS']]print("正則匹配結果:", adjectives)
print("NLP解析結果:", proper_adjectives)
  1. 中文場景解決方案(需要分詞和詞性標注):
import jieba
import jieba.posseg as psegtext = "美麗的花兒在陽光下綻放,散發著迷人的芬芳。"# 使用結巴分詞進行詞性標注
words = pseg.cut(text)
adjectives = [word for word, flag in words if flag.startswith('a')]  # a開頭表示形容詞print("中文形容詞提取結果:", adjectives)

關鍵說明

  1. 正則表達式的局限性:

    • 無法準確處理不規則形容詞(good/better/best)
    • 可能誤判名詞的形容詞形式(如"apple juice"中的"apple")
    • 無法識別復合形容詞(如"state-of-the-art")
  2. 推薦方案:

    • 英文:使用spaCy(更精準的詞性標注)
    import spacy
    nlp = spacy.load('en_core_web_sm')
    doc = nlp("The quick brown fox...")
    adjectives = [token.text for token in doc if token.pos_ == 'ADJ']
    
    • 中文:推薦使用LTP或HanLP等專業中文NLP工具
  3. 增強正則方案(英文):

# 匹配標準形容詞模式(包含比較級/最高級)
adj_pattern = r'''\b                # 單詞邊界(?:               # 非捕獲組(?:[A-Za-z]+) # 基礎形容詞(?:           # 可選后綴(?:er|est)?  # 比較級/最高級|(?:ly)      # 副詞形式(需額外過濾)|(?:ed|ing)  # 分詞形式(需額外過濾)))\b                # 單詞邊界
'''
adjectives = re.findall(adj_pattern, text, re.VERBOSE | re.IGNORECASE)

建議根據實際需求選擇方案:

  • 快速簡單需求:使用基礎正則表達式
  • 準確分析需求:使用NLP工具庫(推薦spaCy/NLTK)
  • 中文處理:必須使用中文分詞工具(如jieba、LTP)

注意:純正則方案無法達到專業NLP工具90%以上的準確率,在正式文本分析中建議優先使用成熟的NLP庫。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/88013.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/88013.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/88013.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

低代碼平臺的數據歸集及治理

低代碼平臺或無碼平臺,在建表單的時候,都是每一個表單一個json的格式文件,存儲在Nosql數據庫中。在開發的過程中,有以下主要的需求 1、json格式實時的轉為關系數據庫的格式,存入到關系數據庫中 需要在流程結束的時候&…

Origin:如何使柱狀圖看起來懸空

想得到這樣的一個沒有下軸的柱狀圖,操作步驟如下: 1.點擊下軸坐標軸 2.修改效果

Vite 原理深入剖析

1. 整體架構設計 Vite 的整體架構由幾個關鍵模塊組成,每個模塊都對應具體的源碼文件: 開發服務器:用于處理瀏覽器請求、模塊解析和熱更新。開發服務器的代碼主要位于 src/node/server/index.ts。 模塊解析與熱更新:通過模塊中間件攔截請求,處理代碼轉換與熱模塊替換。相關…

微處理器原理與應用篇---常見基礎知識(5)

一、什么是嵌入式系統 嵌入式系統是一種以應用為中心、以計算機技術為基礎、軟硬件可裁剪的專用計算機系統,通常嵌入在其他設備中,用于實現特定功能。它廣泛存在于消費電子、工業控制、汽車電子、醫療設備等領域,是現代智能設備的核心 “大腦…

Redis 8.0向量庫 vs 傳統向量數據庫:大模型知識庫開發選型全指南

在大模型知識庫開發領域,向量數據庫的選擇直接影響系統的性能、擴展性和開發效率。隨著Redis 8.0推出Vector Set數據結構并增強向量搜索能力,開發者面臨新的選擇困境:是采用傳統專用向量數據庫(如Milvus、Pinecone)&am…

偏向鎖撤銷為什么會觸發STW?

偏向鎖撤銷觸發STW(Stop-The-World)的根本原因在于其撤銷操作需要??全局內存一致性??和??線程狀態確定性??,具體機制如下: ?? ??一、偏向鎖撤銷的核心流程?? ??競爭觸發撤銷?? 當線程B嘗試獲取已被線程A偏向的…

Java觀察者模式詳解

觀察者模式(Observer Pattern)是一種行為型設計模式,它定義了對象之間的一對多依賴關系,當一個對象(主題)的狀態發生改變時,所有依賴于它的對象(觀察者)都會自動收到通知并更新。 核心概念 觀察者模式包含以下核心角色: ?Subje…

創世新布控球 國標

目錄 結論: UDP模式 對講 平臺頁面設置 設備tcp被動 舊的創世版本(平臺選的設備tcp被動;設備側無法設置) 新創世從2.8改到180上,先UDP,全報文 參考文檔 結論: 對講的tcp主被動&#xff0…

【Dify精講】第18章:企業級功能定制

在企業級AI應用的實際部署中,你很快就會發現開源版本的標準功能往往無法滿足復雜的業務需求。作為一個在多家企業實施AI系統的老兵,我深知企業級定制的痛點和需求。今天,讓我們一起深入Dify的企業級功能定制,看看如何在現有架構基…

PHP $_GET 變量詳解

PHP $_GET 變量詳解 引言 在PHP編程中,$_GET變量是處理HTTP GET請求參數的一種非常便捷的方式。本文將詳細介紹PHP $_GET變量的使用方法、特點以及在實際開發中的應用。 一、什么是$_GET變量? $_GET是一個預定義的PHP超級全局變量,用于存儲HTTP GET請求中的數據。當用戶…

Kafka動態配置深度解析

在分布式消息隊列領域,Kafka憑借其高吞吐量、低延遲和可擴展性成為眾多企業的首選。隨著業務場景的日益復雜和數據流量的動態變化,靜態配置已難以滿足需求,Kafka的動態配置功能應運而生。通過動態配置,用戶無需重啟集群或中斷服務…

為WIN10微軟輸入法的全角切換Bug禁用Shift+Space組合鍵

20250621 By wdhuag 目錄 前言: 參考: 使用AutoHotkey屏蔽快捷鍵(推薦): 使用PowerToys的鍵盤管理器屏蔽快捷鍵(不推薦): 網上其它的方法: 前言: 是的…

Shell腳本調試與錯誤處理詳解

在 Shell 腳本中,set 命令用于控制腳本的執行行為和調試選項。以下是詳細解釋: 1. set -e 和 set e set -e(嚴格錯誤檢查): 當命令返回非零退出狀態(失敗)時,立即退出腳本。 示例&a…

鯤鵬服務器創建Zookeeper鏡像實例

配置Kafka過程中,少不了要使用Zookeeer,這里記錄一下配置Zookeeper鏡像實例的過程。 創建目錄 mkdir -p /data/docker/zookeeper/data mkdir -p /data/docker/zookeeper/conf mkdir -p /data/docker/zookeeper/logs說明:data目錄為數據掛載…

GitHub Actions 自動 CI 測試 WorkFlow工作流搭建

大家好,我是此林。 代碼托管平臺 Github 我們應該比較熟悉。每次我們提交代碼到 GitHub 倉庫時,特別是開源項目,一般都會自動觸發測試腳本運行,幫你驗證代碼沒有引入新的錯誤。 這個其實就是 GitHub Actions,一般我們…

0-機器學習簡介

有監督學習 目標:建立一個模型(函數),來描述輸入(x)和輸出(y)之間的映射關系。 價值:模型訓練完成后,新的輸入,模型會給出預測值輸出。 注意點: 1.要有足夠的訓練樣本 2.輸入和輸出之間有關聯關系 3.輸入…

前端跨域解決方案(6):Nginx

1 Nginx 核心 Nginx 是一個開源的高性能 HTTP 和反向代理服務器,以輕量級、高并發處理能力和低資源消耗著稱。除作為 Web 服務器外,還可充當郵件代理服務器和通用的 TCP/UDP 代理服務器,廣泛應用于現代 Web 架構中。 在 Windows 系統中使用…

C++智能指針編程實例

智能指針是C11引入的重要特性&#xff0c;用于自動管理動態分配的內存&#xff0c;防止內存泄漏。下面介紹幾種高級智能指針編程實例。 1. 共享所有權模式 (shared_ptr) 循環引用問題及解決方案 #include <memory> #include <iostream>class B; // 前向聲明clas…

單元測試總結

一、測試方案: 單元測試方案應包括以下步驟: 1.理解代碼結構:仔細閱讀代碼,理解程序的結構、邏輯和算法。 2.制定測試目標:明確你想要測試的功能和輸出結果; 3.撰寫測試用例:編寫涵蓋所有測試目標的測試用例; 4.執行測試:運行測試用例以驗證功能的正確性; 5.編寫報告:根據測試…

Spring面向切面編程AOP(2)

前置通知&#xff08;Before Advice&#xff09; 前置通知在目標方法執行之前被調用&#xff0c;常用于執行一些預處理邏輯&#xff0c;例如權限驗證、參數校驗等。在 Spring 配置文件中&#xff0c;前置通知通過<aop:before>標簽進行配置&#xff0c;以下是一個典型的示…