ConceptNet and embeddings with a local DB and API.
Project description
Local ConceptNet
ConceptNet and fastText embeddings with a local DB and API. English only.
Example Usage
Import:
import conceptnet_local as cnl
Concept Details
List of all concept IDs:
all_concept_ids = cnl.get_all_concept_ids()
All edges connecting to a concept:
edges = cnl.get_all_edges(cn_id="/c/en/example")
Relatedess between two concepts according to fastText embeddings:
relatedness = cnl.get_relatedness("/c/en/example", "/c/en/test")
Lowest-Cost Paths
Get a variant of A* by specifying cost and heuristic weights:
from conceptnet_local import get_a_star_variant, CostFunction, HeuristicFunction
CustomAStar = get_a_star_variant(
cost_weights={
CostFunction.EDGE_COUNT: 2.,
CostFunction.SIMILARITY_DIFFERENCE: 1.,
},
heuristic_weights={
HeuristicFunction.SIMILARITY_TO_GOAL: 1.,
}
)
or create a fully custom variant of A*:
from conceptnet_local import AStar, Concept, Relation
class CustomAStar(AStar):
def get_cost(self, source: Concept, target: Concept, relation: Relation, goal: Concept) -> float:
...
def get_heuristic(self, current: Concept, goal: Concept) -> float:
...
Get the lowest-cost path:
custom_a_star = CustomAStar()
path = custom_a_star.compute_path(input_concept="/c/en/example", output_concept="/c/en/test", print_time=True)
print(cnl.format_path(path=path))
Custom Queries
Get a reference to the DB:
connection, cursor = cnl.setup_sqlite_db()
Execute queries, e.g.:
partial_id = "examp"
statement = cursor.execute("SELECT embedding FROM embeddings WHERE concept_id LIKE '%?%'", (partial_id,))
result = statement.fetchall()
Close DB connection:
cnl.close_sqlite_db(db_connection=connection)
Database
The DB can be set up by navigating to the db_setup directory and following the instructions in the notebook there.
Version History
0.9
- concept extraction from text
- concept degree retrieval
0.8
- concepts table
- retrieval of similar concepts
- concept existence check
0.7
- separate utils file
- link label formatting
- natural-language path formatting
0.6
- no more FastText model built in
- embedding computation method optional in relatedness method
- optimized embedding retrieval from DB
0.5
- custom initialization method in A*
0.4
- FastText embeddings for arbitrary text
0.3
- retrieval of all concept IDs
0.2
- FastText embeddings
0.1
- reading links and embeddings from DB
- custom A* with configurable variants
- greedy version of Yen's algorithm
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file conceptnet_local-0.9.3.tar.gz.
File metadata
- Download URL: conceptnet_local-0.9.3.tar.gz
- Upload date:
- Size: 14.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3aceb31e8ba07e1dff7afd38907aed775c27f7d6d291c3073d6745a4e698cf4f
|
|
| MD5 |
7781d3201ec82aeba0922e84db0942ab
|
|
| BLAKE2b-256 |
e70445776f01f6aa0dfa602acad60f35105c311eaa5cedf3e2afca4a9112b1c6
|
File details
Details for the file conceptnet_local-0.9.3-py3-none-any.whl.
File metadata
- Download URL: conceptnet_local-0.9.3-py3-none-any.whl
- Upload date:
- Size: 15.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cea33189b0d222bb8495436725f2edd84ec2bb4ae4898c0480ffa47494077a7b
|
|
| MD5 |
5112967d852a731cc3583a95543da2e6
|
|
| BLAKE2b-256 |
ecaf94f2ccbf68a4e4e38571d94a35b723b804b8edfcc5a7404f5bd4415674b1
|