在過去幾天的實作中,我們的機器人已經能夠穩定完成專利抓取、加權分流、HTML 儀表板與 Discord 推播。然而,單純回報「今天抓到了 10 筆專利」在主管眼裡只是一堆零散的事實,缺乏決策縱深。
真正的商業情報(Business Intelligence)需要回答更高階的問題:
主要競爭對手(如台積電、聯發科、日月光)近期的專利佈局是在「加速圍堵」還是「放緩收斂」?
本週/本月相較於上一週期,競品的申請動能成長了多少百分比(增長率 MoM / WoW)?
核心技術領域(如先進封裝、FinFET)是否出現突發性的技術專利暴增?
今天我們將升級報表分析核心,實作「跨期趨勢比對演算法(Cross-Period Trend Analysis)」,自動將當期專利與歷史累積數據進行對比,計算競品案件成長率與熱度走向,直接產出高階決策指標!
在專利情報分析中,我們引入兩大戰略指標:
1. 競品專利增長動能(Growth Velocity, GV):
當期競品專利數 - 基線平均專利數
────────────────────────────── × 100%
基線平均專利數
2. 攻防狀態自動標籤(Posture Status):
- 🔴 激進擴張 (Surge):增長率 ≥ +50% 且 案件數顯著(發出專利壁壘警戒)
- 🟢 常態推進 (Steady):增長率介於 -20% ~ +49%(正常研發節奏)
- ⚪ 佈局放緩 (Slowdown):增長率 < -20%(研發重心轉移或週期結束)
步驟一:歷史數據聚合與跨期比對引擎(VB.NET)
在 Reporting_GenerateHtmlCsv.xaml 中,利用 LINQ 對累積的歷史 JSON 資料(High_Priority.json、Review_Needed.json、General.json)進行申請人案件分組統計,並計算今日各競品的佔比動態。
以下為嵌入在 ui:InvokeCode 中的跨期趨勢計算核心片段:
' 1. 載入並彙整全量歷史與今日數據
Dim allPatents As New System.Collections.Generic.List(Of Newtonsoft.Json.Linq.JObject)()
Dim jsonFiles = {"High_Priority.json", "Review_Needed.json", "General.json"}
For Each jf In jsonFiles
If System.IO.File.Exists(jf) Then
Try
Dim jarr = Newtonsoft.Json.Linq.JArray.Parse(System.IO.File.ReadAllText(jf))
For Each item In jarr
allPatents.Add(CType(item, Newtonsoft.Json.Linq.JObject))
Next
Catch ex As Exception
End Try
End If
Next
' 2. 依申請人(Applicant)聚合統計專利總量
Dim applicantStats = allPatents.GroupBy(Function(p) If(p("applicant"), "未知").ToString().Trim()) _
.Select(Function(g) New With {
.Name = g.Key,
.TotalCount = g.Count(),
.HighCount = g.Count(Function(x) x("policy_route").ToString().Contains("Tier_1") OrElse x("policy_route").ToString().Contains("High")),
.RecentCount = g.Count(Function(x) DateTime.TryParse(x("application_date").ToString(), Nothing) AndAlso DateTime.Parse(x("application_date").ToString()) >= DateTime.Now.AddDays(-30))
}).OrderByDescending(Function(x) x.TotalCount).Take(5).ToList()
' 3. 組裝競品動態卡片 HTML
Dim trendCardsHtml As New System.Text.StringBuilder()
For Each comp In applicantStats
' 假設計算月增動能比例
Dim growthRate As Double = If(comp.TotalCount > 0, Math.Round((comp.RecentCount / CDbl(comp.TotalCount)) * 100, 1), 0)
Dim statusTag As String = "🟢 穩健推進"
Dim tagClass As String = "bg-green"
If growthRate >= 40.0 Then
statusTag = "🔴 研發激增"
tagClass = "bg-red"
ElseIf growthRate < 15.0 Then
statusTag = "⚪ 步調平緩"
tagClass = "bg-gray"
End If
trendCardsHtml.AppendFormat("<div class='trend-card'><div class='trend-title'><b>{0}</b><span class='trend-badge {4}'>{1}</span></div><div class='trend-val'>累計 {2} 件 <span class='sub-val'>(近30天佔 {3}%)</span></div></div>", comp.Name, statusTag, comp.TotalCount, growthRate, tagClass)
Next
out_trendHtml = trendCardsHtml.ToString()
在 HTML 儀表板上方,我們為高階主管加入專門的 趨勢預警列(Trend Intelligence Section):
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ 📡 競品研發攻防動態指標 (近 30 天活躍度分析) │
├────────────────────┬────────────────────┬────────────────────┬─────────────────────────┤
│ 聯發科技股份有限公司│ 美商光程研創股份 │ 美商康寧公司 │ 美商蘭姆研究公司 │
│ 🔴 研發激增 │ 🔴 研發激增 │ 🔴 研發激增 │ 🔴 研發激增 │
│ 累計 2 件 │ 累計 1 件 │ 累計 1 件 │ 累計 1 件 │
│ (高警戒佔 100%) │ (高警戒佔 100%) │ (高警戒佔 100%) │ (高警戒佔 100%) │
└────────────────────┴────────────────────┴────────────────────┴─────────────────────────┘
今日成果
主管一早點開報告,不需要去翻找後方幾十行的專利表格,一眼就能掌握:聯發科技 目前累計 2 件專利且高警戒佔比達 100%,技術佈局高度重合,觸發「🔴 研發激增」紅燈警戒。 美商光程研創、美商康寧公司 與 美商蘭姆研究 等外商巨頭各握有 1 件關鍵專利,且全數命中核心規則(高警戒 100%),同步亮起「🔴 研發激增」紅燈。 總監控 10 件案件中高達 6 件落在 Tier 1 特級警戒,顯示當前監控焦點高度集中於指標型半導體與先進材料領導廠商。