Code Monkey home page Code Monkey logo

ringgaard / sling Goto Github PK

View Code? Open in Web Editor NEW
154.0 8.0 11.0 17.13 MB

SLING - A natural language frame semantics parser

License: Apache License 2.0

Python 13.07% C++ 75.34% Shell 0.26% Starlark 0.96% JavaScript 10.06% HTML 0.11% C 0.03% Dockerfile 0.01% CSS 0.18%
knowledge-management knowledge-representation frame-semantics wikidata frame-semantic-parsing natural-language-understanding natural-language-processing nlp neural-network machine-learning jit-compiler

sling's Introduction

SLING - A natural language frame semantics parser

by Ringgaard Research

The aim of the SLING project is to learn to read and understand Wikipedia articles in many languages for the purpose of knowledge base completion, e.g. adding facts mentioned in Wikipedia (and other sources) to the Wikidata knowledge base. We use frame semantics as a common representation for both knowledge representation and document annotation. The SLING parser can be trained to produce frame semantic representations of text directly without any explicit intervening linguistic representation.

The SLING project is still work in progress. We do not yet have a full system that can extract facts from arbitrary text, but we have built a number of the subsystems needed for such a system. The SLING frame store is our basic framework for building and manipulating frame semantic graph structures. The Wiki flow pipeline can take a raw dump of Wikidata and convert this into one big frame graph. This can be loaded into memory so we can do fast graph traversal for inference and reasoning over the knowledge base. The Wiki flow pipeline can also take raw Wikipedia dumps and convert these into a set of documents with structured annotations extracted from the Wiki markup. This also produces phrase tables that are used for mapping names to entities. There is a SLING Python API for accessing all this information and we also have a bot for uploading extracted facts to Wikidata.

The SLING Parser

The SLING parser is used for annotating text with frame semantic annotations. It is a general transition-based frame semantic parser using bi-directional LSTMs for input encoding and a Transition Based Recurrent Unit (TBRU) for output decoding. It is a jointly trained model using only the text tokens as input and the transition system has been designed to output frame graphs directly without any intervening symbolic representation.

SLING neural network architecture.

The SLING framework includes an efficient and scalable frame store implementation as well as a neural network JIT compiler for fast training and parsing.

A more detailed description of the SLING parser can be found in this paper:

SLING is also the foundation for KnolCase. KnolCase is a distributed case-based knowledge management tool for gathering information about subjects of interest and organizing these into case files, which can be shared with others and published to public knowledge bases.

More information ...

Credits

Original authors of the code in this package include:

  • Michael Ringgaard
  • Rahul Gupta
  • Anders Sandholm

sling's People

Contributors

akademi4eg avatar alvinbhou avatar anders-sandholm avatar bohnetbd avatar carmot avatar cloudtrends avatar corwinliu avatar darrengarvey avatar donskov7 avatar earnmyturns avatar gatoatigrado avatar jdzvonik avatar rahul1980 avatar ringgaard avatar rupprecht avatar shishircc avatar terryykoo avatar vrandezo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sling's Issues

version `GLIBC_2.27' not found

>>> import sling
return ImportError: /lib64/libc.so.6: version `GLIBC_2.27' not found.
It looks like sling-3.0.0-py3-none-linux_x86_64.whl was built on an Ubuntu 18.04 machine. Could you please compile it again on an Ubuntu 16.04 machine and redeployed it? thank you very much.

Am I able to install sling on a Mac with M1 chip?

Hello,

I am trying to install and build the source code for sling on a Mac with M1 chip. This appears to be problematic for installation, as not only do I get a 'sudo: apt-get: command not found' error when running setup.sh, but also the buildall.sh script fails. Trying to install the Python features via

sudo -H pip3 install https://ringgaard.com/data/dist/sling-3.0.0-py3-none-linux_x86_64.whl

also fails.

Is there any alternative for me?

Automated SPARQL construction

Hello, just wanted to ask if there is any tool available for automatic generation of SPARQL queries from the Caspar parsed frames? The idea is to be able to formulate a natural language query, then convert it to SPARQL to query the KB.

Core dump while loading "caspar.flow"

Hello,

Whenever I try to load the "caspar.flow" model, I get the following error:

[2020-10-23 11:14:00.889936: E sling/myelin/compute.cc:1549] No kernel supports step ff_trunk/labeled-roles/GatherSum: float32[1,16]=GatherSum(float32[1550,16],int32[1,32])
[2020-10-23 11:14:00.890011: F sling/myelin/compiler.cc:172] Check failed: net->Compile(*flow, *library_)
*** Signal 6 (Aborted) at 0x7fc5ec885f47 for 0x03ee00007c93
  @ 0x7fc5ec885f47 raise+0xc7
  @ 0x7fc5ec8878b1 abort+0x141
  @ 0x7fc5e94f6497 pysling.so+0x39e497
  @ 0x7fc5e9358f77 sling::myelin::Compiler::Compile(sling::myelin::Flow*, sling::myelin::Network*)+0xdf7
  @ 0x7fc5e9317bc5 sling::nlp::Parser::Load(sling::Store*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0x105
  @ 0x7fc5e9286829 sling::PyParser::Init(_object*, _object*)+0x139
  @ 0x55ebb1dff7d4 python3.8+0xde7d4
  @ 0x55ebb1e86f56 python3.8+0x165f56
  @ 0x55ebb1e4ca92 python3.8+0x12ba92
  @ 0x55ebb1e4e43f python3.8+0x12d43f
  @ 0x55ebb1e4e733 python3.8+0x12d733
  @ 0x55ebb1e4e8ca python3.8+0x12d8ca
  @ 0x55ebb1dff7d4 python3.8+0xde7d4
  @ 0x55ebb1e86f56 python3.8+0x165f56
  @ 0x55ebb1e4ca92 python3.8+0x12ba92
  @ 0x55ebb1e4d754 python3.8+0x12c754
  @ 0x55ebb1edbedc python3.8+0x1baedc
  @ 0x55ebb1f11083 python3.8+0x1f0083
  @ 0x55ebb1e02699 python3.8+0xe1699
  @ 0x55ebb1dc0b84 python3.8+0x9fb84
  @ 0x55ebb1e46dc9 python3.8+0x125dc9
  @ 0x55ebb1e87363 python3.8+0x166363
  @ 0x55ebb1e46dc9 python3.8+0x125dc9
  @ 0x55ebb1e87363 python3.8+0x166363
  @ 0x55ebb1e46dc9 python3.8+0x125dc9
  @ 0x55ebb1e321cd python3.8+0x1111cd
  @ 0x55ebb1dc275e python3.8+0xa175e
  @ 0x55ebb1e4d86b python3.8+0x12c86b
  @ 0x55ebb1dc0b84 python3.8+0x9fb84
Aborted (core dumped)

Steps to reproduce:

  1. Install Bazel
  2. Create a new Anaconda environment containing Python3 and pip3.
  3. Install Sling3 by pip3 install http://www.jbox.dk/sling/sling-3.0.0-py3-none-linux_x86_64.whl
  4. Download the "caspar.flow" model.
  5. Run the following:
import sling
p = sling.Parser("caspar.flow")

Environment:

  • Ubuntu 18.04.5
  • Python 3.8.5
  • gcc 7.5.0
  • Bazel 3.7.0

Thank you in advance.

sling fuse_items

image
When I ran the command of "sling fuse_items" I met this problem.

Entity matching using wikidata

I dont want to use wikipedia for any processing. I just want to use the wikidata for entity matching in different languages. Can you guide me through the steps? I am assuming I need to only work with wikidata

Halting on wikidata/text-file-reader

Greetings All,
Great effort and astonishing work you've been doing here, really appreciate it.

1- I have an issue here regarding building wiki and extracting phrases (for entity recognition).

image

problem: Process is halted here and doesn't proceed .. kept it for hours, and still.
Provided a very large TMPDIR (nearly 1 TB) and still.

2- Also, I have another question, in the provided KB (knowledge base)
sling fetch --dataset kb,nametab,phrasetab

This supports only "En" .. how can I get others that support different languages, such as "fr, it, es"

Thanks

segmentation fault when trying to fetch dataset

root@server:~/Downloads# python3 -c "import sling; sling.which()"
SLING API version 3.0.0 (Sat Feb  4 11:59:11 2023) in /usr/local/lib/python3.9/dist-packages/sling


root@server:~/Downloads# sling fetch --dataset caspar
[2023-02-04 11:59:34.807193: I sling/pyapi/pytask.cc:525] Start HTTP server on port 6767
[2023-02-04 11:59:34.813720: I run.py:341] Execute command fetch
*** Signal 11 (Segmentation fault) at 0x0000020b26f0 for 0x0000020b26f0
  @ 0x0000020b26f0 (unknown)

**Segmentation fault**

root@server:~/Downloads# cat /etc/*release
PRETTY_NAME="**Debian GNU/Linux 11** (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.