2008-11-17 35 views
9

Tôi muốn sử dụng các thư viện nltk trong C++.làm cách nào để sử dụng thư viện python trong C++?

Có ngôn ngữ/cơ chế keo mà tôi có thể sử dụng để thực hiện việc này không?

Lý do: Tôi đã không thực hiện bất kỳ chương trình nghiêm túc nào trong C++ một thời gian và muốn sửa đổi các khái niệm NLP cùng một lúc.

Cảm ơn

Trả lời

12

Bạn cũng có thể thử thư viện Boost.Python; trong đó có this capability. Thư viện này chủ yếu được sử dụng để trưng ra C++ cho Python, nhưng có thể được sử dụng theo cách khác.

+0

Cảm ơn bạn đã có tài nguyên tốt. Nó giải quyết một số giờ mệt mỏi của tôi. Có ví dụ cụ thể nào mà không tăng cường không? –

1

tôi đã không cố gắng trực tiếp gọi chức năng Python từ C++, nhưng đây là một số ý tưởng thay thế ...

Nói chung, nó dễ dàng hơn để gọi C++ mã từ một ngôn ngữ cấp cao như Python hơn cách khác. Nếu bạn quan tâm đến cách tiếp cận này, thì bạn có thể tạo một codebase C++ và truy cập nó từ Python. Bạn có thể trực tiếp sử dụng API bên ngoài được cung cấp bởi python [nó cần được mô tả ở đâu đó trong tài liệu Python] hoặc sử dụng một công cụ như SWIG để tự động hóa quy trình gói C++ - to-Python.

Tùy thuộc vào cách bạn muốn sử dụng thư viện, bạn cũng có thể tạo các tập lệnh Python mà bạn gọi từ C++ với các chức năng exec*.

15

Mặc dù gọi điện thoại c + + libs từ python là bình thường hơn - bạn có thể gọi một mô-đun python từ C++ bằng cách gọi bascially python intepreter và để nó thực thi nguồn python. Điều này được gọi là embedding

Hoặc thư viện boost.python giúp thư viện trở nên dễ dàng.

+0

nhúng tài liệu đã di chuyển https://docs.python.org/2.7/extending/embedding.html, tôi đã đề xuất chỉnh sửa. –

1

Pyrex có thể được sử dụng sạch cho mục đích này. Có một số example trong bản phát hành mã nguồn.

Các vấn đề liên quan