mirror of
https://github.com/neuml/txtai.git
synced 2026-10-11 21:39:55 +00:00
9.0 KiB
9.0 KiB
In [ ]:
%%capture
!pip install git+https://github.com/neuml/txtaiIn [ ]:
from txtai.pipeline import Entity
data = ["US tops 5 million confirmed virus cases",
"Canada's last fully intact ice shelf has suddenly collapsed, forming a Manhattan-sized iceberg",
"Beijing mobilises invasion craft along coast as Taiwan tensions escalate",
"The National Park Service warns against sacrificing slower friends in a bear attack",
"Maine man wins $1M from $25 lottery ticket",
"Make huge profits without work, earn up to $100,000 a day"]
entity = Entity()
for x, e in enumerate(entity(data)):
print(data[x])
print(f" {e}", "\n")US tops 5 million confirmed virus cases
[('US', 'LOC', 0.999273955821991)]
Canada's last fully intact ice shelf has suddenly collapsed, forming a Manhattan-sized iceberg
[('Canada', 'LOC', 0.999609649181366), ('Manhattan', 'MISC', 0.651396632194519)]
Beijing mobilises invasion craft along coast as Taiwan tensions escalate
[('Beijing', 'LOC', 0.9996659755706787), ('Taiwan', 'LOC', 0.9996755123138428)]
The National Park Service warns against sacrificing slower friends in a bear attack
[('National Park Service', 'ORG', 0.9993489384651184)]
Maine man wins $1M from $25 lottery ticket
[('Maine', 'LOC', 0.9987521171569824)]
Make huge profits without work, earn up to $100,000 a day
[]
In [ ]:
from txtai.embeddings import Embeddings, Documents
from txtai.workflow import Workflow, Task
# Create workflow with an entity pipeline output into a documents collection
documents = Documents()
workflow = Workflow([Task(lambda x: entity(x, flatten=True, join=True)), Task(documents.add, unpack=False)])
# Run workflow
for _ in workflow([(x, row, None) for x, row in enumerate(data)]):
pass
embeddings = Embeddings({"path": "sentence-transformers/nli-mpnet-base-v2"})
embeddings.index(documents)
for query in ["North America", "Asia Pacific"]:
index = embeddings.search(query, 1)[0][0]
print(query, "\t", data[index])North America Canada's last fully intact ice shelf has suddenly collapsed, forming a Manhattan-sized iceberg Asia Pacific Beijing mobilises invasion craft along coast as Taiwan tensions escalate
In [ ]:
workflow = """
writable: true
embeddings:
path: sentence-transformers/nli-mpnet-base-v2
entity:
workflow:
index:
tasks:
- action: entity
args: [null, "simple", true, true]
- action: index
"""
from txtai.app import Application
# Create and run workflow
app = Application(workflow)
for _ in app.workflow("index", [(x, row, None) for x, row in enumerate(data)]):
pass
# Run queries
for query in ["North America", "Asia Pacific"]:
index = app.search(query)[0]["id"]
print(query, "\t", data[index])North America Canada's last fully intact ice shelf has suddenly collapsed, forming a Manhattan-sized iceberg Asia Pacific Beijing mobilises invasion craft along coast as Taiwan tensions escalate