Try to use Label Studio. It supports Simple Text & HTML NER tagging and much more.
Input to Label Studio for task on the screenshot (HTML code packed to JSON): { "text": "<div style=\"max-width: 750px\"><div style=\"clear: both\"><div style=\"float: right; display: inline-block; border: 1px solid #F2F3F4; background-color: #F8F9F9; border-radius: 5px; padding: 7px; margin: 10px 0;\"><p><b>Jules</b>: No no, Mr. <PERSON>, it's not like that. Your help is definitely appreciated.</p></div></div><div style=\"clear: both\"><div style=\"float: right; display: inline-block; border: 1px solid #F2F3F4; background-color: #F8F9F9; border-radius: 5px; padding: 7px; margin: 10px 0;\"><p><b>Vincent</b>: Look, Mr. 908
<PERSON>, I respect you. I just don't like people barking orders at me, that's all.</p></div></div><div style=\"clear: both\"><div style=\"display: inline-block; border: 1px solid #D5F5E3; background-color: #EAFAF1; border-radius: 5px; padding: 7px; margin: 10px 0;\"><p><b>The Wolf</b>: If I'm curt with you, it's because time is a factor. I think fast, I talk fast, and I need you two guys to act fast if you want to get out of this. So pretty please, with sugar on top, clean the car.</p></div></div></div>" }
Output: [ { "id": "9fkAdIXgkV", "from_name": "ner", "to_name": "text", "source": "$text", "type": "hypertextlabels", "value": { "start": "/div[1]/div[1]/div[1]/p[1]/b[1]/text()[1]", "end": "/div[1]/div[1]/div[1]/p[1]/b[1]/text()[1]", "text": "<PERSON>", "startOffset": 0, "endOffset": 5, "htmllabels": [ "Person" ] } }, { "id": "YMeGv8ndLx", "from_name": "ner", "to_name": "text", "source": "$text", "type": "hypertextlabels", "value": { "start": "/div[1]/div[1]/div[1]/p[1]/text()[1]", "end": "/div[1]/div[1]/div[1]/p[1]/text()[1]", "text": "<PERSON>", "startOffset": 13, "endOffset": 18, "htmllabels": [ "Organization" ] } }, { "id": "vgGGhXRFcr", "from_name": "ner", "to_name": "text", "source": "$text", "type": "hypertextlabels", "value": { "start": "/div[1]/div[2]/div[1]/p[1]/text()[1]", "end": "/div[1]/div[2]/div[1]/p[1]/text()[1]", "text": " Look, Mr. <PERSON>", "startOffset": 1, "endOffset": 14, "htmllabels": [ "Person" ] } }, { "id": "oJxIH-ztQv", "from_name": "ner", "to_name": "text", "source": "$text", "type": "hypertextlabels", "value": { "start": "/div[1]/div[2]/div[1]/p[1]/text()[2]", "end": "/div[1]/div[2]/div[1]/p[1]/text()[2]", "text": "people bar", "startOffset": 38, "endOffset": 48, "htmllabels": [ "Organization" ] } } ] 908