VERSION 1.0 CLASS BEGIN MultiUse = -1 'True END Attribute VB_Name = "DetectorClassifier" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = False Attribute VB_Exposed = False ' ====== Classification entity detector ======= ' Shared module version: 20220615 ' Tested in: ' Depends on: ' Required reference: API_Python, ex_Python Option Explicit Private tags_ As String Public Function Init(sTags$) tags_ = sTags End Function Public Function Test(sText$) As Boolean If tags_ = vbNullString Then _ Exit Function Test = AccessPython.CallFunction(PY_MODULE_TEXT, "extract_entities", Array(sText)) <> Array() End Function Public Function ExtractFragments(sText$) As PC_ParsedData Dim iData As New PC_ParsedData On Error GoTo SKIP_PYTHON Dim iResult As Variant iResult = AccessPython.CallFunction(PY_MODULE_TEXT, "extract_entities", Array(sText)) On Error GoTo 0 Dim nItem& For nItem = LBound(iResult) To UBound(iResult) Step 1 Dim nStart&: nStart = iResult(nItem, 0) Dim nEnd&: nEnd = iResult(nItem, 1) Dim nClass&: nClass = iResult(nItem, 2) Call iData.AddItem(nStart, nEnd, nClass) Next nItem SKIP_PYTHON: Set ExtractFragments = iData End Function