Skip to main content

xTrAct-NLP: A Code Query and Embedding Toolkit

xTrAct-NLP is a toolkit designed to process codebases, generate embeddings from code chunks, and retrieve relevant snippets using natural language queries. It uses state-of-the-art models to create meaningful embeddings and facilitates sophisticated query expansion and ranking mechanisms. This project is especially useful for developers looking to integrate NLP into code search engines.

Features

  • Code Parsing: Supports code parsing using AST to extract functions and classes as code chunks.
  • Embedding Generation: Generates embeddings from code chunks using HuggingFace models (e.g., CodeBERT, T5).
  • Query Expansion: Automatically expands natural language queries with relevant technical terms using language models.
  • Reranking: Supports BM25 and cosine similarity-based ranking for more relevant code retrieval.
  • Visualization: Supports both scatter plots (for PCA and t-SNE) and heatmaps to visually analyze and compare code embeddings.

Installation

pip install xtract-nlp

For development:

git clone https://github.com/ooojustin/xTrAct-NLP.git
cd xTrAct-NLP
pip install -e .

Usage

CLI Usage

  1. Process Codebase:

    xtract process <path_to_codebase>
    
  2. Generate Embeddings:

    xtract generate
    
  3. Query the Codebase:

    xtract query "parse python code using ast"
    

Python Library Usage

from xtract.core import process_code, generate_embeddings, query_code

# Process codebase
num_chunks = process_code("/path/to/codebase")

# Generate embeddings
num_embeddings = generate_embeddings()

# Query codebase
results = query_code("parse python code using ast")

License

This project is licensed under the MIT License. See the LICENSE for more details.

Release files for xtract-nlp 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xtract-nlp 0.1.2
File Size Uploaded
xtract_nlp-0.1.2.tar.gz 82.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for xtract-nlp 0.1.2
File Interpreter ABI Platform
xtract_nlp-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 94.6 kB

Release files / xtract_nlp-0.1.2.tar.gz

Download URL xtract_nlp-0.1.2.tar.gz
Size 82.2 kB
Tags Source
SHA-256 checksum
How to use checksums
93485b5dee549a58ee84c3a67b20782476cb40df5f9aba7f21c85e673ffbd658
BLAKE2b-256 checksum
How to use checksums
25cec3dc7f79a4f53d02b4d1b86e5b5440645a62eb8fc3de9237f4a9fe667cd5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.4

Release files / xtract_nlp-0.1.2-py3-none-any.whl

Download URL xtract_nlp-0.1.2-py3-none-any.whl
Size 12.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d96bb182f503a0c61e7a3ea098aa9b24e2738e4a7cdadcae2df73a5aefa9da7e
BLAKE2b-256 checksum
How to use checksums
047433dd43b3c7215b3df354d58b60716405a5a2c987fba6224f9582d85263eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.4

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page