基于專利合作地址匹配的數據構建區域協同矩陣

文章目錄

    • 地區地址提取
    • 完成的處理代碼

在專利合作申請表中,有多家公司合作申請。在專利權人地址中, 有多個公司的地址信息。故想利用這里多個地址。想用這里的地址來代表區域之間的專利合作情況代表區域之間的協同、協作情況。

下圖是專利合作表的一部分:

image-20250227200812529

最終的結果:

image-20250227201838199

假設在一個專利的地址中,有1家成都公司,1家武漢公司,2家北京公司:

成都市,武漢市,北京市,北京市

首先計算這些區域兩兩合作的關系:

import pandas as pd
from itertools import permutations
from collections import Counter
d = Counter(list(permutations(["成都市", "武漢市", "北京市", "北京市"], r=2)))
d

輸出:

Counter({('成都市', '北京市'): 2,('武漢市', '北京市'): 2,('北京市', '成都市'): 2,('北京市', '武漢市'): 2,('北京市', '北京市'): 2,('成都市', '武漢市'): 1,('武漢市', '成都市'): 1})
rows = []
cols = []
values = []for k, v in d.items():row, col = krows.append(row)cols.append(col)values.append(v)demo_matrix = pd.DataFrame({"row": rows,"col": cols,"value": values,}
)
demo_df = demo_matrix.pivot(index="row", columns="col", values="value")
demo_df.fillna(0, inplace=True)
demo_df

輸出:

image-20250227202716646

上述只是使用了一個專利合作地址構建的合作矩陣。特意選取了其中有多個同一個地區的例子進行展示。如上述例子中,同一個專利中有兩家北京的企業,那么 北京-北京 的權重是2。代表了這個區域內部的合作關系。

地區地址提取

從專利的地址中,提取出省市信息。
最開始想的是寫一個正則表達式,提取省市區,但是后面發現這不可行,因為會有自治區、省道,這些特殊名稱的干擾。

為了達到比較高的準確率,我收集了全國66萬個行政區劃代碼表,在其中逐個與專利的地址逐個對應。通過這種方式可以保證比較高的準確率。

image-20250227203734452

由于本次使用省與市的地址,使用下述代碼篩選出只有省和市的數據,篩選代碼如下:

address_df = pd.read_csv("66萬個全國各級行政區劃代碼表.csv")
def is_str(item):return isinstance(item, str) and len(item) > 0
idxs = ((address_df["1"].apply(is_str))& (address_df["2"].apply(is_str))& (~address_df["3"].apply(is_str))
)
address_filter_df = address_df[idxs]
address_filter_df = address_filter_df.drop(columns=["3", "4", "5"])
address_filter_df = address_filter_df.rename(columns={"1": "prov", "2": "city"})

下圖展示全國342個市級單位:

address_filter_df.head(), address_filter_df.shape

image-20250227203959220

完成的處理代碼

處理整個表格的時候,把所有專利的區域合作次數加起來的代碼如下:

加載專利合作表:

def split_address(text):if not isinstance(text, str):return []text = re.split(";", text)text = [item.strip() for item in text if len(item.strip()) > 0]return textaddress1 = "當前專利權人地址"
address2 = "工商注冊地址"df = pd.read_excel("20250212合作申請.xlsx")

下述代碼實現了,從專利地址中抽取出省市信息:

def extract_address(df, address) -> Dict:# 首先是直轄市判斷Four_Municipality = ["北京市", "上海市", "天津市", "重慶市"]for item in Four_Municipality:if item in address:return {"prov": item, "city": ""}for _, row in df.iterrows():prov = row["prov"]city = row["city"]if prov in address and city in address:return {"prov": prov, "city": city}print(f"error not find prov and city, {address}")return None

利用抽取出的省、市,構建矩陣:

def build_marix(attr_name):addresses = df[address1].map(split_address).tolist()ans = {}for row_address in addresses:row_address_parse = []for address in row_address:address_parse = extract_address(address_filter_df, address)if address_parse is None:continuerow_address_parse.append(address_parse)row_address_parse = [tmp["prov"] + " " + tmp["city"] for tmp in row_address_parse]row_address_cnt = Counter(list(permutations(row_address_parse, r=2)))for k, v in row_address_cnt.items():if k not in ans.keys():ans[k] = 0ans[k] += vrows = []cols = []values = []for k, v in ans.items():row, col = krows.append(row)cols.append(col)values.append(v)df_matrix = pd.DataFrame({"row": rows,"col": cols,"value": values,})pivot_df = df_matrix.pivot(index="row", columns="col", values="value")pivot_df.fillna(0, inplace=True)pivot_df.to_excel(f"{attr_name}.xlsx")

項目文件夾的內容如下:

image-20250227204945954

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

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

相關文章

汽車小助手智能體

汽車小助手:智能驅動汽車服務新體驗 鏈接:文心智能體平臺AgentBuilder | 想象即現實 文心智能體平臺AgentBuilder,是百度推出的基于文心大模型的智能體平臺,支持廣大開發者根據自身行業領域、應用場景,選取不同類型的…

各種傳參形式

一、QueryString 前端請求:http://localhost:8080/test/user/find?id26&namezhangsan 后端接收: 1.參數接收: RequestMapping("/find") public void find(String id,String name){... }2.對象接收: RequestMa…

【vue-echarts】——03.配置項---tooltip

文章目錄 一、tooltip提示框組件二、顯示結果一、tooltip提示框組件 提示框組件,用于配置鼠標滑過或點擊圖表時的顯示框 代碼如下 Demo3View.vue <template><div class="about">

VSCode輕松調試運行.Net 8.0 Web API項目

1.背景 我一直都是用VS來開發.NetCore項目的&#xff0c;用的比較順手&#xff0c;也習慣了。看其他技術文章有介紹VS Code更輕量&#xff0c;更方便。所以我專門花時間來使用VS Code&#xff0c;看看它是如何調試代碼、如何運行.Net 8.0 WebAPI項目。這篇文章是一個記錄的過程…

P8720 [藍橋杯 2020 省 B2] 平面切分--set、pair

P8720 [藍橋杯 2020 省 B2] 平面切分--set、pair 題目 分析一、pair1.1pair與vector的區別1.2 兩者使用場景兩者組合使用 二、set2.1核心特點2.2set的基本操作2.3 set vs unordered_set示例&#xff1a;統計唯一單詞數代碼 題目 分析 大佬寫的很明白&#xff0c;看這兒 我講講…

游戲引擎學習第128天

開始 然而&#xff0c;我們仍然有一些工作要做&#xff0c;渲染部分并沒有完全完成。雖然現在已經能夠運行游戲&#xff0c;而且幀率已經可以接受&#xff0c;但仍然有一些東西需要進一步完善。正在使用調試構建編譯版本&#xff0c;雖然調試版本的性能不如優化版本&#xff0…

多元數據直觀表示(R語言)

一、實驗目的&#xff1a; 通過上機試驗&#xff0c;掌握R語言實施數據預處理及簡單統計分析中的一些基本運算技巧與分析方法&#xff0c;進一步加深對R語言簡單統計分析與圖形展示的理解。 數據&#xff1a; 鏈接: https://pan.baidu.com/s/1kMdUWXuGCfZC06lklO5iXA 提取碼: …

第8天:面向對象編程入門 - 類與對象

第8天&#xff1a;面向對象編程入門 - 類與對象 一、&#x1f4da; 今日學習目標 &#x1f3af; 掌握類與對象的定義與使用&#x1f527; 理解封裝、繼承、多態三大特性&#x1f4a1; 完成銀行賬戶管理系統實戰&#x1f6e0;? 學會構造函數與析構函數的編寫 二、?? 核心知…

Hadoop之02:MapReduce編程模型

MapReduce編程模型 理解MapReduce編程模型獨立完成一個MapReduce程序并運行成功了解MapReduce工程流程掌握并描述出shuffle全過程&#xff08;面試&#xff09;獨立編寫課堂及作業中的MR程序理解并解決數據傾斜 1. MapReduce編程模型 Hadoop架構圖 Hadoop由HDFS分布式存儲、M…

2.7 大模型RAG內容安全合規檢查-大模型ACP模擬題-真題

單選題 在RAG應用中&#xff0c;輸入內容合規檢查的正確順序是&#xff1f; A. 先處理模型生成&#xff0c;后檢查用戶輸入 B. 先檢查用戶輸入&#xff0c;后處理模型生成 ? C. 僅檢查用戶輸入 D. 僅檢查模型輸出 解析&#xff1a;合規流程應優先過濾用戶輸入風險&#xff0…

mapbox基礎,使用geojson加載heatmap熱力圖層

????? 主頁: gis分享者 ????? 感謝各位大佬 點贊?? 收藏? 留言?? 加關注?! ????? 收錄于專欄:mapbox 從入門到精通 文章目錄 一、??前言1.1 ??mapboxgl.Map 地圖對象1.2 ??mapboxgl.Map style屬性1.3 ??heatmap熱力圖層樣式二、??使用geojs…

Deepseek Api Function Calling解析(tools、tool_calls)Deepseek函數調用流程圖、Python代碼示例

文章目錄 Function Calling介紹**核心原理**1. **動態擴展模型能力**2. **JSON結構化交互** **實現步驟**&#xff08;以支持Function Calling的模型為例&#xff09;1. **定義可用函數**2. **模型匹配與生成**3. **開發者執行函數**4. **結果反饋給模型** **DeepSeek R1的當前…

在2023idea中如何創建SpringBoot

目錄 一.下載和安裝 Maven 1.前往 https://maven.apache.org/download.cgi 下載最新版的 Maven 程序 2.將文件解壓到D:Program FilesApachemaven目錄 3.新建環境變量MAVEN_HOME&#xff0c;賦值D:Program FilesApachemaven 4.編輯環境變量Path&#xff0c;追加%MAVEN_HOME…

基于YOLO11深度學習的遙感視角農田檢測與分割系統【python源碼+Pyqt5界面+數據集+訓練代碼】深度學習實戰、目標分割、人工智能

《------往期經典推薦------》 一、AI應用軟件開發實戰專欄【鏈接】 項目名稱項目名稱1.【人臉識別與管理系統開發】2.【車牌識別與自動收費管理系統開發】3.【手勢識別系統開發】4.【人臉面部活體檢測系統開發】5.【圖片風格快速遷移軟件開發】6.【人臉表表情識別系統】7.【…

用冒泡排序法模擬qsort函數

目錄 1.前言 2.qsort函數的介紹 ?3.冒泡法回顧 4.模擬qsort---buble_sort 4.1 buble_sort格式 4.2 主函數&#xff0c;以int類型為例 4.3comp_int函數的功能設計 4.4 swap函數的功能設計 5. 總代碼概覽 1.前言 今天&#xff0c;小鄧兒帶大家用冒泡排序法來模擬一下qs…

全星研發項目管理APQP軟件系統:鑄造芯片集成電路產業研發體系化建設平臺

全星研發項目管理APQP軟件系統&#xff1a;鑄造芯片集成電路產業研發體系化建設平臺 在芯片集成電路行業&#xff0c;研發效率和質量直接決定了企業的核心競爭力。面對日益復雜的芯片設計、日益縮短的產品生命周期以及日益嚴格的質量要求&#xff0c;傳統的研發管理模式已難以滿…

《Python實戰進階》No 11:微服務架構設計與 Python 實現

第11集&#xff1a;微服務架構設計與 Python 實現 2025年3月3日更新了代碼和微服務運行后的系統返回信息截圖&#xff0c;所有代碼在 python3.11.5虛擬環境下運行通過。 微服務架構通過將復雜應用拆分為獨立部署的小型服務&#xff0c;顯著提升了系統的可擴展性和維護性。本集…

USRP7440-通用軟件無線電平臺

1、產品描述 USRP7440基于第三代XILINX Zynq UltraScale RFSoC架構&#xff0c;它將射頻ADC、DAC、ARM、FPGA等集成一體&#xff0c;瞬時帶寬可以達到2.5GHz&#xff0c;尤其適合于射頻直采應用&#xff0c;比如通信與雷達。 第一代RFSOC高達4GHz ? 8x 或 16x 6.554GSPS DAC…

1.2.3 使用Spring Initializr方式構建Spring Boot項目

本實戰概述介紹了如何使用Spring Initializr創建Spring Boot項目&#xff0c;并進行基本配置。首先&#xff0c;通過Spring Initializr生成項目骨架&#xff0c;然后創建控制器HelloController&#xff0c;定義處理GET請求的方法hello&#xff0c;返回HTML字符串。接著&#xf…

【小羊肖恩】小羊杯 Round 2 C+K

題目鏈接&#xff1a;https://ac.nowcoder.com/acm/contest/100672#question C.是毛毛蟲嗎&#xff1f; 思路&#xff1a; 其實很簡單&#xff0c;假設我們要滿足題目所給條件&#xff0c;那么這個毛毛蟲最壞情況下肯定是一條如下圖所示的無向圖 右端省略號為對稱圖形 &…