0
$\begingroup$

Brief Introduction: I have a report/paragraph in which there are sentences with reference to future plans/outlooks/expectations for a particular entity. I want to extract all such sentences for now.

Problem statement: How to identify or recognize such futuristic statement (sentence where they refer to their plans) or How to best segregate the futuristic sentences from other non-futuristic sentences. I’m looking for a traditional programming solution and/or Machine Learning solution.

Languages and packages preferred: Python, Spacy, scikit-learn, keras (backend - tensorflow)

Here is an input paragraph:


“As at the Latest Practicable Date, we have seven dipping lines located at our Malaysian facilities and two dipping lines at our Thai facility. We plan to upgrade our facilities in Malaysia by increasing the number of cleanrooms for laundry and packaging of our products and installing additional cleanroom plant and equipment. In relation to our Thai subsidiary, we intend to install an additional dipping line, increase the number of cleanrooms and upgrade our facilities by adding additional floor space to house additional plant and equipment. “

Copy the above text into paragraph.txt file.

Here is the code to get given text into sentences in a pandas dataframe.


import pandas 
import spacy 

with open("paragraph.txt",'r') as f:
    content = f.read() 

nlp = spacy.load('en_core_web_sm')
sentences = list(nlp(content).sents)
sentences = [str(sentence) for sentence in sentences]
sentences_dataframe = pandas.DataFrame(sentences,columns =["Sentences"])
sentences_dataframe["F/NF"] = ""
sentences_dataframe.head()

Here's the desired result:

S.no Sentences F/NF
1 As at the Latest Practicable Date, we have seven dipping lines located at our Malaysian facilities and two dipping lines at our Thai facility. NF
2 We plan to upgrade our facilities in Malaysia by increasing the number of cleanrooms for laundry and packaging of our products and installing additional cleanroom plant and equipment F
3 In relation to our Thai subsidiary, we intend to install an additional dipping line, increase the number of cleanrooms and upgrade our facilities by adding additional floor space to house additional plant and equipment. F

F – Futuristic, NF - Futuristic

The paragraph has 3 sentences, one row for each sentence and related tags for each sentence

New contributor
Krs is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
$\endgroup$
0
$\begingroup$
import spacy
nlp = spacy.load('en_core_web_trf')

def identify_futuristic(sentence):
    sentence_doc = nlp(sentence)
    if any((token.morph.get('Tense') == [] and
            token.morph.get('VerbForm') == ['Fin'] and 
            token.morph.get('Mood') == [])
           or
           (token.morph.get('Tense') == ['Pres'] and
            token.morph.get('VerbForm') == ['Fin'] and
            token.morph.get('Mood') != ['Ind'])
           for token in sentence_doc):

        return 'F'
    else:
        return 'NF'

sentences_dataframe["F/NF"] = sentences_dataframe['Sentences'].apply(
    lambda s: identify_futuristic(s))
New contributor
Krs is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
$\endgroup$

Your Answer

Krs is a new contributor. Be nice, and check out our Code of Conduct.

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.