What you are asking is not trivial. As PeteW said, you probably will find something in DSP, although this might be a bit too basic for them.
The problem with sound measurements is that the amplitude can be significantly different.
One way is that you can differentiate is though frequency. So what I'd do is:
break up the signal is a fixed time period (more that 1 sec and less that 10 min). a packet
calculate different statistics on each packet. e.g.:
- perform an fft and find the dominant frequency
- find the power content in the signal (integral of fft)
- (you can add more but then you'd need multi-variate approach).
when you plot the data (x the dominant frequency, y the power content) , you should have clusters of similar measurements, which you can identify using k-means clustering or other methods.
Those hopefully, you could use to identify "packets" in your recording that are different that the basic road level. (you might even be able to classify them using AI methods.).
What I'd do then, is that I would listen to representatives of the different clusters and see if they fit a pattern (lawnmower, or construction vehicle).
regarding the multivariate approach, you could even use libraries like librosa to fingerprint the different packets, with different statistics and then calculate the different clusters (although this would not be an afternoon's work) .